从数组字符串中删除数字

时间:2017-05-21 23:05:59

标签: java arrays

public class ChessMethod {
  public static void main(String[] args) {

      String line=" 1.d4 Nf6 2.c4 g6  0-1]";
      String[] elements = line.split("[\\s.]+");
      String first = elements[1];
      String[] trailing = Arrays.copyOfRange(elements,1,elements.length);

      System.out.println(Arrays.deepToString(trailing));

  }
}

输出= [1,d4,Nf6,2,c4,g​​6,0-1]]

我想摆脱" 1。"," 2。"移动列表的一部分,只保留

d4,Nf6 ......我打算将它们添加到列表中。

使用分隔符有更好的方法吗? 我是否必须创建一个方法来检查我的数组中每个字符串的(如果有)数值,并保存那些没有的字符串?

1 个答案:

答案 0 :(得分:2)

String line=" 1.d4 Nf6 2.c4 g6  0-1]";
        String[] elements = line.split("[\\s.]+");
        List<String> sts  = new ArrayList<>();
        for(String st : elements) {
            if(st.matches(".*[a-z].*"))
                sts.add(st);
        }
        System.out.println(sts);

此输出

[d4, Nf6, c4, g6]

如果我没有遗漏任何东西,可能这就是你想要的