GUIプログラムを作っています。私の最初のプログラムでは、次のコードがあります。
double num1;
num1 = Double.parseDouble(guess.getText());
このコードはテキストフィールドから値を取得し、それをdoubleに変換すると思います。
値を取得してStringまたはCharに変換するにはどうすればよいですか?
getText()
はすでにString
を返すため、その値をString
として格納するのは簡単です。
double
を解析するには、すでに実行済みです。入力が無効な場合は、NumberFormatException
に注意してください。
その値をchar
として保存するには、要件によって異なります。最初のキャラクターが欲しいですか?文字列に1文字だけを含める必要がありますか?有効な文字はありますか?等々。
// Storing the value as a String.
String value = guess.getText();
// Storing the value as a double.
double doubleValue;
try {
doubleValue = Double.parseDouble(value);
} catch (NumberFormatException e) {
// Invalid double String.
}
// Storing the value as a char.
char firstChar = value.length() > 0 ? value.charAt(0) : (char) 0;
// Require the String to have exactly one character.
if (value.length() != 1) {
// Error state.
}
char charValue = value.charAt(0);
double.parseDouble()の代わりにString.valueOf()を使用します。これは、doubleを文字列値に変換するのに役立ちます。
getText()
メソッドは文字列を返します。 .parseDouble
を使用する場合、実際に行っているのは、ユーザーが入力した文字列をdoubleに変換することです。したがって、文字列の場合、呼び出される値はすでに文字列であるため、.parseメソッドを使用する必要はありません。キャラクターの場合、次のようなものを使用する必要があります。
String text = jTextField1.getText();
if (text.length() > 1 && !text.contains(" ") && !text.contains(",")) {
//make sure that its length is not over 1, and that it has no spaces and no commas
char ch = text;
} else {
//if a space or comma was found no matter how big the text it will execute the else..
System.out.println("this is not allowed");
jTextField1.setText("");
}
getText()
はすでにテキストを文字列として返します。ところで、解析エラーによる例外に注意してください。しかし、あなたは正しい方向に進んでいます。 :)