-1

我正在从 char 数组列表中读取每个字符,并尝试分别获取字母、数字和空格。

数组列表有:

[h, e, l, l, o,  , j, a,  , m, e, s,  , 2, 4, , h, o, w,  , a, r, e,  , y, o, 2, 2, u,]

我尝试编码如下:

String name="";
for(int i=0;i<c.size();)
{
    if(Character.isLetter(c.get(i)))
    {
        //System.out.println("letter");
        while(c.get(i)!= 32)
        {
            name = "its a id";
            System.out.println(name);
            i++;
        }       
    }
    else if(Character.isDigit(c.get(i)))
    {
        // System.out.println("digit");
        name = "its a digit";
        System.out.println(name);
    }
    else if(c.get(i)>=0 && c.get(i)<=32)
    {
        name="its a space";  
        System.out.println(name);           
    }
}

但这不能正常工作。我在这里进入无限循环。如何增加i空间旁边的值并再次遍历这些条件?基本上我试图区分标识符、数字和空格。

4

1 回答 1

0

那会很简单。只需for像这样声明循环:

for(int i=0;i<c.size();i++)

您还应该删除i++第一if个子句中的 。


还有其他方法可以遍历ArrayList. 您可以通过迭代器循环:

for (Iterator i = c.iterator(); i.hasNext(); Character ch = iterator.next();)

然后你指的是ch而不是c.get(i).

您可以使用特殊类型的for循环(请帮我解决我的健忘症,这叫什么):

for (Character ch : c)

同样,您必须参考ch而不是c.get(i).

于 2013-10-05T01:00:34.707 回答