我想找到一个句子中每个单词的字母数。我已经尝试了几次使用几个代码,但从来没有得到它。我总是显示错误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);
}
}
}
答案 0 :(得分:1)
尝试分割单词,并通过迭代计算数组中每个元素的长度
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");
}
}
输入一句话:
java程序查找句子中每个单词的长度
输入句子中的“java”一词有4个字符
输入句子中的“程序”一词有7个字符
输入句子中的“to”一词有2个字符
输入句子中的“find”一词有4个字符
输入句子中的“the”一词有3个字符
输入句子中的“长度”一词有6个字符
输入句子中的“of”一词有2个字符
输入句子中的“each”一词有4个字符
输入句子中的“单词”一词有4个字符
输入句子中的“in”一词有2个字符
输入句子中的单词“a”有1个字符
输入句子中的“句子”一词有8个字符