我需要从句子中的每个单词中提取第一个字符。
输出应该是:JaJwuth但它来了:JJJJJaaaaJJJJJwwwwwuuutttthhhhh
这是我的代码:
class new_word {
public static void main(String args[]) {
String s = "Jack and Jill went up the hill";
s = ' ' + s; /* adding space before the string */
char ch;
int i, l;
l = s.length();
for (i = 0; i < l; i++) {
if (s.charAt(i) == (' '))
ch = s.charAt(i + 1);
}
System.out.println(ch); /* here the error appears */
}
}
请帮助我理解我做错了什么,谢谢。输出应该是:JaJwuth
答案 0 :(得分:1)
除了您为char ch;
获取的初始化问题(通过使用空char(char ch = ' ';
)初始化它而修复),这可能是您尝试做的(不使用char) CH):
class new_word {
public static void main(String args[]) {
String s = "Jack and Jill went up the hill";
s = ' ' + s; /* adding space before the string */
int strLen = s.length();
for (int i = 0; i < strLen; i++) {
if (s.charAt(i) == (' '))
System.out.println(s.charAt(i + 1));
}
}
}
<强>输出:强>
J
a
J
w
u
t
h
注意:System.out.println(...)
在问题的for循环之外。
答案 1 :(得分:0)
你想初始化ch
因为在实例中for循环没有运行(例如当i&gt; = 1)时ch将永远不会被初始化然后你会尝试打印出一个未初始化的变量
char ch ='\0';
答案 2 :(得分:0)
您必须初始化ch
变化
char ch;
到
char ch=' ' ;