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 中,与类不同,变量通常以小写字母开头命名。通常,您的变量将被命名为userInputand rawUserInput

于 2013-07-19T00:11:04.803 回答
4

当您在块 ( ) 内声明变量时{ ... },该变量仅存在于该块内。

您需要在块外声明它,然后在块内分配它。

于 2013-07-19T00:11:13.790 回答
0
String UserInput = RAWUserInput.contains("example")? RAWUserInput.replace("example", "eg"): RAWUserInput;
于 2013-07-19T01:25:29.173 回答
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 回答