将数据从较长的数组复制到较短的数组

时间:2018-01-31 02:40:40

标签: java arrays chars

我想只将旧的字符数组中的某些数据复制到新的字符数组中。这就是我到目前为止所做的:

yield <- data.frame(fruits = c("apples", "apples", "apples", "oranges", "oranges", 
         "oranges", "pears", "pears", "pears"), year = rep(2008:2010, 3), 
         count = c(10, 13, 7, 5, 12, 14, 16, 18, 20))

我只希望新数组中的字符与字母表中的字母(a,b,c等)相对应,基本上复制旧的char数组而不包含与数字,标点符号,空格等对应的字符。有没有办法做到这一点?我尝试过使用for循环和while循环,但它只是不起作用。建议?

2 个答案:

答案 0 :(得分:3)

在转换为字符数组之前,从原始字符串中删除所有非字母字符。

String stripped = s.replaceAll("[^a-z]", "");
char[] charsInString = stripped.toCharArray();

这个解决方案不是最有效的,但是,除非你的输入字符串很长,否则这个数字应该可以忽略不计。

答案 1 :(得分:0)

试试此代码

    String str = " @#$%@##$%$& @#$%#$   alph #$%a#$%# be&*%#@ts";
    char[] charsInString = str.toCharArray();

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < charsInString.length; i++) {
        if ((charsInString[i] > 65 && charsInString[i] < 122))
            sb.append(charsInString[i]);
    }

    char[] newCharList = sb.toString().toCharArray();

    System.out.println(newCharList);

输出:

alphabets