在字符串数组中分隔奇偶字符数的Java程序

在字符串数组中分隔奇偶字符数的Java程序,java,arrays,string,Java,Arrays,String,我想写一个java程序来分离字符串数组中的偶数字符。我制作了这个程序,它正在运行: String [] x = new String[5] ; x[0] = "Hello" ; x[1] = "My" ; x[2] = "Name" ; x[3] = "is" ; x[4] = "John" ;

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

 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<String> list=Arrays.asList("HELLO","MY","NAME","IS","ALICE") ;  
我怎样才能从这一点继续下去?我尝试了某种形式的for迭代,但我不知道如何从这个列表中逐个识别元素

增强了用于救援的环路

List<String> list=Arrays.asList("HELLO","MY","NAME","IS","ALICE");
for(String s : list) {
    if(s.length()%2==0) {
        System.out.println(s);
    }
}
它还支持增强的for循环:


您应该在每个字符串上运行一个方法,提取偶数字符并从中创建如下字符串:

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());
}

请提供您想要的输出。这将特别有用,因为您无法清楚地描述您的需求。您是指长度为偶数的seprate字符串吗?如果这是含义,那么您可以在一行中完成:list.stream.filterx->x.length%2==0.collectCollectors.toList;我认为这是一个标题错误。根据他要求的示例,添加了一个答案,但标题仍然令人困惑。如果标题令人困惑,我很抱歉。我喜欢你的回答。这正是我想要的。Thx人!而且你的数组初始化也更好!
String[] x = {"Hello", "My", "Name", "is" , "John"};
for(String s : x) {
    if(s.length()%2==0) {
        System.out.println(s);
    }
}
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());
}
list.stream().filter(x -> (x.length() % 2) == 0).collect(Collectors.toList());