(首先,如果这是一个基本问题,我道歉,但我是新手编码)
我想要做的是验证字符串是否为某个字符组合,然后使用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找不到字符串,我该怎么办?
提前致谢:)
答案 0 :(得分:4)
在if
语句之前声明变量。
String UserInput;
if (RAWUserInput.contains("example") {
UserInput = RAWUserInput.replace("example", "eg");
}else{
UserInput = RAWUserInput;
}
它将在if
语句后保留在范围内。如果变量在if
块或else
块内(在大括号之间)声明,则在块结束后超出范围。
此外,编译器足够聪明,可以确定在每种情况下始终将某些内容分配给UserInput
,因此您不会收到编译器错误,即该变量可能未被赋值。
在Java中,变量通常以小写字母开头,与类不同。通常,您的变量将命名为userInput
和rawUserInput
。
答案 1 :(得分:4)
在块({ ... }
)中声明变量时,该变量仅存在于该块内。
您需要在块外声明它,然后在块内分配。
答案 2 :(得分: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
另外,请查看编码指南:缩进代码使其更具可读性,首选使用小写字母启动临时变量名称。
答案 3 :(得分:0)
String UserInput = RAWUserInput.contains("example")? RAWUserInput.replace("example", "eg"): RAWUserInput;