所以我是 Java 新手,我想编写一个方法,将 String 转换为 Char 数组并返回此 Char 数组,但仅返回偶数索引中的字符。
我尝试过类似的方法
public char[] collectEvenChars(String str) {
char [] chr = str.toCharArray();
char [] temp;
int k=0;
for (int i = 0; i < chr.length;i++)
{
if ( i % 2 == 0)
k++;
}
}
然后以某种方式尝试使用 k 作为临时字符数组的大小,但这不起作用。我也尝试过使用 while 循环
char[] collectEvenChars(String str){
char [] chr = str.toCharArray();
char [] temp = new char [chr.length];
int i = 0;
while (i<chr.length & i % 2 == 0){
temp [i] = chr [i];
}
return temp;
并且有一个错误说“expected.length = 5,actual.length = 9”,因此它必须对数组的返回执行某些操作,但如果我在开始时初始化它并在循环中返回它不起作用,我无法更改数组的大小,因为这样循环就不会循环。我在这里非常无助。如果它是空的,这会很容易,但由于我必须返回一个数组,所以我几乎无助。
最佳答案
我认为你让事情变得过于复杂 - 你可以只运行偶数索引:
char[] collectEvenChars(String str){
char[] result = new char[(str.length() + 1) / 2];
for (int i = 0; i < str.length(); i += 2) {
result[i / 2] = str.charAt(i);
}
return result;
}
关于java - 将 String 转换为 Char 数组,然后仅返回数组的偶数索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47479666/