【发布时间】:2019-03-17 01:51:54
【问题描述】:
所以,我尝试制作一个程序,该程序应该从用户那里获取字符串的输入并反转每个字符串,例如: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”以及我能做些什么来解决这个问题?
【问题讨论】:
-
你为什么使用字符串数组?您正在使用单个字符串。
-
我拆分了字符串,以便可以处理每个单独的单词。这对我来说似乎是最简单的方法。
-
(不是“空字符”。是4个字符
'n'、'u'、'l'、'l'。) -
@StephenC 你是对的!空字符在那里什么都没有。但这四个字符还是很烦人。