打印句子每个单词的第一个字母

时间:2015-06-08 06:48:58

标签: java string

我需要从句子中的每个单词中提取第一个字符。
输出应该是: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

3 个答案:

答案 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=' ' ;