10
votes

Java est-il sensible à la casse?

J'ai lu quelque part que Java est sensible à la casse. J'ai été incapable de le confirmer. Est-ce? Si oui, pourquoi?


0 commentaires

8 Réponses :


12
votes

Oui, c'est sensible à la casse. C'est ainsi à cause de son héritage de C. de garder la langue plus familière à ce que les gens étaient habitués à "dans la journée", ils l'ont laissé comme sensible à la casse. Il y a un avantage supplémentaire, car les identificateurs Java peuvent être presque tous les personnage Unicode . Vous n'avez pas à vous soucier de savoir si un personnage individuel peut être supérieur ou non.

Par exemple, il faut ß être équivalent à SS ?


6 commentaires

Quel personnage Unicode est-ce?


@ Cole "Cole9" Johnson ß Latin Petite lettre Sharp S Unicode: U + 00DF, UTF-8: C3 9F


Un S, hein? Alors pourquoi minuscule (u + 00df) résultat dans ss ? Je suis sûr que ce serait juste s .


Essayez de regarder mon commentaire. Unicode U + 00DF n'est pas unicode U + 0053. Ce dernier est le premier est ß. S ≠ ß


Je suis désolé. Je ne pense pas que tu me comprends. Votre commentaire fait sonner comme ce personnage est défini en minuscule à SS


@ Cole "Cole9" Johnson - Eh bien, c'est la chose intéressante ... majuscule ß est SS ou au moins elle était ( en.wikipedia.org/wiki/capital_%df ) et SS devraient correspondre à SS, alors si ß correspond à SS?



7
votes

Les identificateurs sont sensibles à la casse car la collation est un problème difficile et dépendant des paramètres régionaux.


3 commentaires

Unicode Collation définit un pré-commande, ce qui signifie qu'il aussi définit la comparaison insensible à la casse.


Je me suis trompé; Pardon. Je ne peux plus changer le vote, même si Joel et Jeff ont décidé que ce serait une bonne idée que les discussions n'invaluaient jamais son opinion.


Merci, et je préfère ignorer la truc de renforcement positif.



2
votes

oui. Java est sensible à la casse car la plupart des langages de programmation sont!


1 commentaires

Je dirais que c'est une assez mauvaise explication.



7
votes

Java est sensible à la casse car il utilise une syntaxe de style C. La sensibilité au cas est utile car elle vous permet de déduire ce qu'est un nom de nom basé sur son étui.

Par exemple, la norme Java pour les noms de classe est la première lettre de chaque mot ( entier , imprimanteam , etc.). La norme pour les noms de variable et de méthode est minuscule la première lettre du premier mot et la mise en valeur de toutes les autres premières lettres ( numéro , println () , checkerror () , etc.). Et la norme pour les constantes est toutes majuscules avec des sous-traitants ( quelque_constant ).

Bien que vous n'êtes pas obligé de suivre ces règles dans votre code (cela compilera même si vous cassez ces règles), le code intégré de Java les suit et toutes les grandes bibliothèques Java font également. Et votre code devrait vraiment suivre ces règles aussi, car il aide les autres développeurs à déduire de la signification lorsqu'ils voient la capitalisation.


0 commentaires

6
votes

C'était plus une décision technique. Java a l'intention d'être indépendant de la plate-forme. Les classes Java publiques sont stockées avec le paquet / nom de classe dans le système de fichiers. Dans les plates-formes non-Windows, les noms de fichiers sont sensibles à la casse. Cela échouerait si vous n'avez pas utilisé de cas exactement pour charger / exécuter la classe. Ce besoin de sensibilité de cas est étendu à d'autres identifiants en Java (ce qui est en fin de gamme de chambres pour d'autres avantages (mais non techniques) tels que les conventions de dénomination).


0 commentaires

2
votes

Le compilateur Java et l'interprète sont sensibles à la casse. Vous devez donc capitaliser de manière cohérente.

helloworldApp n'est pas la même chose que helloworldApp.

Cette sensibilité au cas reflète le patrimoine de Java comme une excroissance de C et C ++.


0 commentaires

39
votes

J'ai lu quelque part que Java est sensible à la casse. J'ai été incapable de confirmer cela.

Le code source Java est sensible à la casse, si vous voulez dire cela. IE double n'est pas le même type que double , et vous pouvez avoir deux variables différentes et distinctes myData et myData .

Est-ce? Si oui, pourquoi?

La sensibilité de l'affaire est la norme dans la plupart des langages et des environnements de programmation, car des lettres inférieures et majuscules sont représentées différemment aux niveaux les plus bas. Pour un ordinateur, "A" et "A" sont deux choses complètement différentes, et il faut du travail supplémentaire pour le faire agir comme si elles étaient identiques.

En outre, certaines langues ont des règles spéciales très délicates pour le boîtier, par ex. La lettre allemande ß n'a pas de version majuscule et est généralement supérieure à "SS" - de sorte que "weiß" et "weiss" soit considéré comme syntaxiquement identique? Peu pire est turc: ils ont deux lettres distinctes I avec et sans points, et chacune a sa propre version majuscule. Donc, en Turquie, "image" est pas la version majuscule de "image"! Et ce n'est pas du tout non pertinent, en particulier pour Java, puisque vous pouvez utiliser toutes ces lettres comme identifiants dans vos programmes Java si vous le souhaitez.

À la lumière de tout cela, il est très compréhensible que les concepteurs de langues de programmation choisissent la solution simple de la syntaxe être sensible à la casse.


2 commentaires

Je pense que la casse des langues insensibles peut facilement exister sans le problème que vous mentionnez. Si vous autorisez des identifiants / variables / constantes / etc. Dans le programme à compenser uniquement des caractères ASCII, le problème n'existe plus. En outre, même si vous êtes un programmeur français, vous coderez en anglais. Votre code doit être compris par autant de personnes que possible. Oui, d'autres caractères spéciaux peuvent (et volonté) existent dans les chaînes de caractères de votre code, mais c'est un problème complètement différent. Je ne dis pas que le passage à la casse-insensibilité devrait être fait, je dis simplement que ce serait facile.


En effet, HTML, CSS et SQL (et donc PL / SQL) viennent à l'esprit comme des exemples de langages insensibles de cas qui ne semblent pas imploser en raison de ß (bien que ce soit un point intéressant).



4
votes

Si un langage de programmation devrait être sensible à la casse ou non pour diviser l'opinion parmi les programmeurs. Quel que soit le débat, il est important de rappeler que Java est sensible à la casse. Cela signifie simplement que le cas des lettres de vos programmes Java compte. Par exemple, supposons que vous décidiez de créer trois variables appelées "Endloop", "Endloop" et "Endloop". Même si en anglais, nous voyons les noms variables comme disant la même chose, Java ne le fait pas. Il les traitera tous différemment.


0 commentaires