因此,我尝试制作一个程序,该程序应该从用户那里获取一个String的输入并反转每个String,例如:stack-> kcats。我的程序几乎可以正常工作,除了在每个字符串的开头也将其设置为“ null”!
import java.util.Scanner;
public class Q9 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a string.");
String s = sc.nextLine();
String[] w = s.split("\\s+");
String[] r = new String[w.length];
for (int i = 0; i < w.length; i++) {
for (int j = w[i].length() - 1; j >= 0; j--) {
r[i] += w[i].charAt(j);
}
}
String t = String.join(" ", r);
System.out.println(t);
}
}
这是一个简单的问题,但是我一生都无法弄清楚为什么得到此输出。
Enter a string.
stack
nullkcats
第一行是我的提示,第二行是我的输入,第三行是我收到的输出。谁能解释为什么出现“ null”以及我该如何解决?
答案 0 :(得分:1)
那是因为Java中对象的默认值是Null。这里,字符串数组索引值(即r [i])最初为null。将其追加到字符结果为null并输出字符。