0

(まず、これが基本的な質問である場合は申し訳ありませんが、コーディングは初めてです)

私がしたいのは、文字列が特定の文字の組み合わせであるかどうかを確認し、次のように if-else ステートメントを使用してそれらを置き換えることです。

String RAWUserInput = sometextfield.getText().toString();
if (RAWUserInput.contains("example") {
   String UserInput = RAWUserInput.replace("example", "eg");
}else{
   String UserInput = RAWUserInput;}

sometextbox.setText(UserInput);

次に、if-else ステートメントの外で文字列にアクセスします。Java が文字列を見つけられないため、最後の行を実行する方法がわかりません。どうすればよいですか?

前もって感謝します :)

4

4 に答える 4

4

ifステートメントの前に変数を宣言します。

String UserInput;
if (RAWUserInput.contains("example") {
   UserInput = RAWUserInput.replace("example", "eg");
}else{
   UserInput = RAWUserInput;
}

ifステートメントの後もスコープ内に残ります。変数がifブロックまたはelseブロック内 (中括弧の間) で宣言されている場合、ブロックの終了後にスコープ外になります。

また、コンパイラは、常に何かが割り当てられていると判断できるほどスマートであるUserInputため、変数に値が割り当てられていない可能性があるというコンパイラ エラーは発生しません。

Java では、変数は通常、クラスとは異なり、小文字で始まる名前が付けられます。通常、変数には and という名前が付けられuserInputますrawUserInput

于 2013-07-19T00:11:04.803 に答える
4

ブロック内で変数を宣言すると ( { ... })、変数はそのブロック内にのみ存在します。

ブロックの外側で宣言してから、ブロックの内側に割り当てる必要があります。

于 2013-07-19T00:11:13.790 に答える
0
String rawUserInput = sometextfield.getText().toString();
String userInput = ""; // empty
if (rawUserInput.contains("example") {
   userInput = rawUserInput.replace("example", "eg");
} else{
   userInput = rawUserInput;
}

sometextbox.setText(userInput);

それ以外の場合は、else ステートメントを保存します。

String rawUserInput = sometextfield.getText().toString();
String userInput = new String(rawUserInput); // copy rawUserInput, using just = would copy its reference (e.g. creating an alias rawUserInput for the same object in memory)
if (rawUserInput.contains("example") {
   userInput = rawUserInput.replace("example", "eg");
}
// no else here

また、コーディング ガイドラインも参照してください。コードをインデントすると読みやすくなります。一時変数名は小文字で始めることをお勧めします。

于 2013-07-19T00:12:57.020 に答える
0
String UserInput = RAWUserInput.contains("example")? RAWUserInput.replace("example", "eg"): RAWUserInput;
于 2013-07-19T01:25:29.173 に答える