変数enumからその値を取り出し、string.hに変換する必要がありますか?enumの値をとり、それを文字列に変換する
ここでは、タイプの列挙です:
public enum State{
b,c,p;
};
は、今私は、オブジェクトの文字列の中に一つの値を挿入する必要があります。
変数enumからその値を取り出し、string.hに変換する必要がありますか?enumの値をとり、それを文字列に変換する
ここでは、タイプの列挙です:
public enum State{
b,c,p;
};
は、今私は、オブジェクトの文字列の中に一つの値を挿入する必要があります。
enum.name
またはenum.toString
を使用して列挙定数の名前を取得するか、enum.ordinal
を使用して順序を取得します。
そう、名前()やtoString()を使用することができます。
State aState = State.c;
String strState = aState.name();
がhere詳細については、公式のJavaのリファレンスを参照してください...
State.b.toString()
が"b"
を返します。同じことが他のものにも当てはまります。
通常、
State state = ...;
String string = state.toString();
は動作するはずですが、誰かが他の目的のためにtoString
を上書きしてしまうことがありますので、それが推奨されていません。
代わりにあなたが探している方法はさておき、あなたの列挙に述べたように
String string = state.name();
では、常にすべて大文字にする必要があり、彼らは説明的な名前を持つ必要があります。それは言語のルールではなく、大会です。たとえば、enum State { ON, OFF, PAUSED; }
です。
方法#1:使用してあなたがState
の値と同じであるString
を印刷したい場合は、あなたがtoString()
メソッドを使用することができます内蔵のtoString()
とname()
方法
、または方法はname()
です。
System.out.println(State.b); // Prints "b"
System.out.println(State.c); // Prints "c"
System.out.println(State.p); // Prints "p"
方法#2:あなたはそれらの状態のそれぞれに関連付けられたカスタムString
を持つようにしたい場合はカスタムマッピング
を作成するためにコンストラクタを使用すると、あなたが特定の値を関連付けるために、コンストラクタを使用することができます各enum
値に:あなたはデフォルトにtoString()
使用を壊したくない場合はもちろん
public enum State{
b("State B"), c("State C"), p("State P");
private String longName;
private State(String longName) {
this.longName = longName;
}
@Override
public String toString() {
return this.longName;
}
};
、あなたはと呼ばれる別のメソッドを作成することができますたとえば、はカスタム値を返します。
'@Override public String toString {return" State "+ name()。toUpperCase(); } 'は宣言' a、c、p;の後に置くことができます。 – toto2
あなたは絶対に正しいですが、私はサンプル文字列として '状態B'などを使っていました。たとえば、 'b'を' 'Banana''と' 'c''を' 'Coconut''にマッピングしたいと思うかもしれません。その場合、' toString() 'ロジックを実装するための難しくて速い方法はありません。 –
私はより複雑な何かをする傾向があるが、私はそれがより柔軟だと見つける:
public enum MyEnumeration {
SOME_NAME("Some Name"),
OTHER_THING("Other Thing"),
...
MORE_VALUES("More Values"),
private final String displayName;
private MyEnumeration(String displayName) {
this.displayName = displayName;
}
public String getDisplayName() {
return displayName;
}
}
この道を、私はコードの私の列挙型のための標準的な大文字と小文字を使用していますが、彼らのためにもっとできる名前を持つことができます。 このトリックは、数字を初期化することによって序数を置き換えるためにも使用できます。次に、列挙を並べ替えることについて心配する必要はありません。
enumにはこれを行う方法があります。あなたはAPIをチェックしたいと思うでしょう。 –
私はそれを見つけることができませんでした。値が見つかりました – Mazzy