• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:enum列挙子に使える文字列と使えない文字列)

enum列挙子に使える文字列と使えない文字列

このQ&Aのポイント
  • Javaのenumで使える列挙子の法則性に興味があります。
  • 「?」は通って「!」はエラーって、コンパイルを試みた後に結果を知ると、色々とムカつきます。
  • enumで使える列挙子(要素)のタイプが載ってるサイト、enumの列挙子に使うとエラーになってしまう例が載ってるサイトなどを紹介してくれるとありがたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

Javaで識別子(クラス名や列挙子名や変数名など)に使える文字は、Java文字とJava数字であり、先頭に限ってはJava文字のみとなっています。 http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.8 先頭にも使える文字(Java文字)かどうかは java.lang.Character.isJavaIdentifierStart(char) で調べられます。 http://docs.oracle.com/javase/jp/7/api/java/lang/Character.html#isJavaIdentifierStart%28char%29 先頭以外には使える文字(Java文字またはJava数字)かどうかは java.lang.Character.isJavaIdentifierPart(char) で調べられます。 http://docs.oracle.com/javase/jp/7/api/java/lang/Character.html#isJavaIdentifierPart%28char%29 例えば、下記の様なコードを実行する事で判別する事が出来るでしょう。 System.out.println(Character.isJavaIdentifierPart('?')); System.out.println(Character.isJavaIdentifierPart('→')); System.out.println(Character.isJavaIdentifierStart('!')); // 先頭に使えるか System.out.println(Character.isJavaIdentifierStart('☆')); // 先頭に使えるか

参考URL:
http://www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#40625
five_163
質問者

お礼

さんきゅー

その他の回答 (2)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.3

1月の1が通りません。 識別子について調べるといいです。 予約語と識別子は、プログラムで最初に抑えるべき基本です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ちなみにどんなエラーになったんでしょうか?

five_163
質問者

補足

javac Main.java Main.java:2: エラー: \65297は不正な文字です enum Ng{1月,1月,→,!,☆} ^ Main.java:2: エラー: '}'がありません enum Ng{1月,1月,→,!,☆} ^ Main.java:2: エラー: \8594は不正な文字です enum Ng{1月,1月,→,!,☆} ^ Main.java:2: エラー: \65281は不正な文字です enum Ng{1月,1月,→,!,☆} ^ Main.java:2: エラー: \9734は不正な文字です enum Ng{1月,1月,→,!,☆} ^ エラー5個

関連するQ&A