java程序,用于查找句子中每个单词的字母数

java程序,用于查找句子中每个单词的字母数,java,arrays,loops,exception-handling,Java,Arrays,Loops,Exception Handling,我想找出一个句子中每个单词的字母数。我已经尝试了好几次使用一些代码,但都没有得到它。我总是显示错误StringIndexOutOfBounds异常。我的一个代码如下: import java.util.*; class LengthOfEachWord { public static void main() { Scanner sc = new Scanner(System.in); Stri

我想找出一个句子中每个单词的字母数。我已经尝试了好几次使用一些代码,但都没有得到它。我总是显示错误StringIndexOutOfBounds异常。我的一个代码如下:

    import java.util.*;
    class LengthOfEachWord
    {
        public static void main()
        {
            Scanner sc = new Scanner(System.in);
            String s,a,b;
            int l,x,l1,y=0,now;
            try
            {
                System.out.print("Enter a sentence:");
                s=sc.nextLine();
                l=s.length();
                String arr[]=s.split(" ");
                now=arr.length;
                while(true)
                {
                    x=s.indexOf(' ');
                    a=s.substring(0,x);
                    l1=a.length();
                    System.out.println(a+"="+l1);
                    b=s.substring(x+1,l);
                    s=b;
                    y++;
                    if(now==y)
                    {
                        break;
                    }
                }//End of while block
            }//End of try block
            catch(Exception e)
            {
                System.out.println("Error="+e);
            }
        }
    }

尝试拆分单词,通过迭代计算数组中每个元素的长度

例子:
publicstaticvoidmain(字符串[]args){
最终扫描仪myScanner=新扫描仪(System.in);
串句;
System.out.print(“输入句子:”);
句子=myScanner.nextLine();
//现在按空间分割
最后一个字符串[]sentceComp=句子.split(“”);
//把句子中的单词圈起来
for(int i=0;i
输出: 输入一句话:

java程序,用于查找句子中每个单词的长度

输入句子中的单词“java”有4个字符

输入句子中的“程序”一词有7个字符

输入句子中的单词“to”有两个字符

输入句子中的单词“find”有4个字符

输入句子中的单词“The”有3个字符

输入句子中的单词“length”有6个字符

输入句子中的单词“of”有两个字符

输入句子中的单词“each”有4个字符

输入句子中的单词“word”有4个字符

输入句子中的单词“in”有两个字符

输入句子中的单词“a”有1个字符

输入句子中的单词“句子”有8个字符


非常感谢。你能给出一个稍微简化一点,不使用数组的程序吗?
public static void main(String[] args) {
    final Scanner myScanner = new Scanner(System.in);
    String sentence;
    System.out.print("Enter a sentence:");
    sentence = myScanner.nextLine();
    // now split by space
    final String[] sentceComp = sentence.split(" ");
    // loop over the words in sentence
    for (int i = 0; i < sentceComp.length; i++) {
        System.out.println("The word \"" + sentceComp[i] + "\" in the input sentence has " + sentceComp[i].length() + " chars");
    }
}