web-dev-qa-db-ja.com

テキストフィールドからテキストを取得する

GUIプログラムを作っています。私の最初のプログラムでは、次のコードがあります。

double num1;
num1 = Double.parseDouble(guess.getText());

このコードはテキストフィールドから値を取得し、それをdoubleに変換すると思います。

値を取得してStringまたはCharに変換するにはどうすればよいですか?

3
Ralph Lorenz

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);
1
afsantos

double.parseDouble()の代わりにString.valueOf()を使用します。これは、doubleを文字列値に変換するのに役立ちます。

1
user8615675

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("");
}
0
Ayvadia

getText()はすでにテキストを文字列として返します。ところで、解析エラーによる例外に注意してください。しかし、あなたは正しい方向に進んでいます。 :)

0
dARKpRINCE