0

我正在使用数组列表来存储字符串中的单词。我将它们按单词的长度存储在数组列表的数组中。我现在正在使用 switch 语句,但我必须有 45 个案例,我想知道是否有人知道我可以执行相同操作的更简单和更短的方法。这是一些代码:

    String temp;
    Scanner sc = new Scanner(str);
    while(sc.hasNext())
    {
        temp = sc.next();

        switch(temp.length()){

        case 1:
            wordsByLen[0].add(temp);
        case 2:
            wordsByLen[1].add(temp);
        case 3:
            wordsByLen[2].add(temp);

我有案例 1-45 和默认值。如果可能的话,我只想缩短这个时间。谢谢!

4

6 回答 6

3

wordsByLen[temp.length()].add(temp);--- 我猜应该这样做。

于 2013-03-21T16:27:29.127 回答
3

不要理会switch,只要做

wordsByLen[temp.length() - 1].add(temp)
于 2013-03-21T16:27:32.683 回答
3
String temp;
Scanner sc = new Scanner(str);
while(sc.hasNext())
{
    temp = sc.next();
    wordsByLen[temp.length()-1].add(temp);
}
于 2013-03-21T16:28:00.783 回答
2

只用一个比长度短的

int len = temp.length();
wordsByLen[len - 1].add(temp);
于 2013-03-21T16:27:56.323 回答
2

为什么你需要在这里使用 switch case。试试这个:

String temp;
        Scanner sc = new Scanner(str);
        while(sc.hasNext())
        {
            temp = sc.next();
          if(temp.length > 0) {
            wordsByLen[temp.length()-1].add(temp)

        }
于 2013-03-21T16:29:35.423 回答
1

您可以简单地使用以下命令代替 switch:

wordsByLen[temp.length()-1].add(temp);
于 2013-03-21T16:28:35.200 回答