Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据从较长的数组复制到较短的数组_Java_Arrays_Chars - Fatal编程技术网

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

Java 将数据从较长的数组复制到较短的数组,java,arrays,chars,Java,Arrays,Chars,我只想将某些数据从旧的字符数组复制到新的字符数组。这就是我迄今为止所做的: char[] charsInString = s.toCharArray(); int length = 0; for (int i = 0; i < charsInString.length; i++) { if (!(charsInString[i] < 65 || charsInString[i] > 122)) length++; } char[] newCharLi

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

char[] charsInString = s.toCharArray();

int length = 0;
for (int i = 0; i < charsInString.length; i++) {
    if (!(charsInString[i] < 65 || charsInString[i] > 122))
        length++;
}

char[] newCharList = new char[length];
for (int i = 0; i < charsInString.length; i++) {
    // not sure what to do here?
}
char[]charsInString=s.toCharArray();
整数长度=0;
for(int i=0;i122))
长度++;
}
char[]newCharList=新字符[长度];
for(int i=0;i

我只希望新数组中的字符与字母表中的字母(a、b、c等)对应,基本上复制旧的字符数组,而不使用与数字、标点符号、空格等对应的字符。有什么方法可以做到这一点吗?我尝试过使用for循环和while循环,但都不起作用。建议?

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

String stripped = s.replaceAll("[^a-z]", "");
char[] charsInString = stripped.toCharArray();
但是,此解决方案不是最有效的,除非您的输入字符串很长,否则这应该可以忽略不计。

尝试此代码

    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);
inti=0;如果(Character.isAlphabetic(c))newCharList[i++]=c,则用于(char c:charsIntString)
alphabets