用于分隔字符串数组中偶数和奇数个字符的Java程序

时间:2016-12-24 11:22:30

标签: java arrays string

我想写一个java程序来分隔String数组中的偶数字符。我制作了这样的程序,它正在运行:

 String [] x = new String[5] ;
                 x[0] = "Hello" ;
                 x[1] = "My" ;
                 x[2] = "Name" ; 
                 x[3] = "is" ;
                 x[4] = "John" ;
                    for(int i=0;i<x.length;i++) {
                      if(x[i].length()%2==0) {
                        System.out.println(x[i]);
                          }
                       }

现在我想让程序使用这样的List声明:

    List<String> list=Arrays.asList("HELLO","MY","NAME","IS","ALICE") ;  

我怎样才能从这一点继续?我试过某种“for”迭代,但我不知道如何从这个List中逐个元素地识别。

2 个答案:

答案 0 :(得分:0)

增强for循环救援

List<String> list=Arrays.asList("HELLO","MY","NAME","IS","ALICE");
for(String s : list) {
    if(s.length()%2==0) {
        System.out.println(s);
    }
}

另外,只需指出,您可以将该数组初始化为:

String[] x = {"Hello", "My", "Name", "is" , "John"};

还支持增强的for循环:

String[] x = {"Hello", "My", "Name", "is" , "John"};
for(String s : x) {
    if(s.length()%2==0) {
        System.out.println(s);
    }
}

答案 1 :(得分:-1)

你应该在每个String上运行一个提取偶数字符串的方法,并从中创建一个这样的字符串:

public void printEvenChars(String str) {
    StringBuilder sbEven = new StringBuilder();
    for (int i = 0; i < str.length(); i++) {
        if ( i % 2 == 0) {
            sbEven.append(str.charAt(i));
        }
    }
    System.out.println(sbEven.toString());
}

如果你的意思是过滤甚至是legnth字符串,你可以在一行中完成

list.stream().filter(x -> (x.length() % 2) == 0).collect(Collectors.toList());