我正在尝试编写一种方法,用于将用户输入的字符串的元音加倍。我一直在警告变量输出没有初始化。 该怎么办?
这是我的代码:
public static void main(String[] args)
{
String input;
String output;
Scanner scan = new Scanner (System.in);
System.out.println ("Enter string:");
input =scan.nextLine();
for (int i=0 ; i< input.length(); i++) {
if((input.charAt(i)+"").toUpperCase().matches("A|E|I|O|U")) {
output += input.charAt(i);
}
output += input.charAt(i);
System.out.println ("New string:" +output);
}
}
}
答案 0 :(得分:5)
您必须初始化output
,因为本地变量没有默认值:
String output = "";
否则,在第一次调用output += input.charAt(i);
(相当于output = output + input.charAt(i);
)时,output
未初始化,因此该行有编译错误。
使用input
您不会遇到同样的问题,因为您在首次尝试访问它之前为其分配了一个值。
答案 1 :(得分:1)
您必须在Java中初始化局部变量以避免编译错误,因为它们默认情况下未设置。所以只需在访问它们之前进行初始化:
String input = "";
String output = "";
答案 2 :(得分:0)
只需初始化字符串:
public static void main(String[] args) {
String input = "";
String output = "";
Scanner scan = new Scanner(System.in);
System.out.println("Enter string:");
input = scan.nextLine();
for (int i = 0; i < input.length(); i++) {
if ((input.charAt(i) + "").toUpperCase().matches("A|E|I|O|U")) {
output += input.charAt(i);
}
output += input.charAt(i);
System.out.println("New string:" + output);
}
}
答案 3 :(得分:0)
这是你声明字符串的方式:
for(var i = start; i < end; i += step){
document.getElementById("myP").innerHTML = i;
}