【发布时间】:2018-05-08 20:18:24
【问题描述】:
所以我是 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 作为临时 char 数组的大小,但这不起作用。我也尝试过使用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”所以它必须对数组的返回做一些事情但是如果我初始化它我不能改变数组的大小开始并在循环中返回它不起作用,因为循环不会循环。我在这里很无助。如果它是无效的,这将很容易,但由于我必须返回一个数组,所以我非常无助。
【问题讨论】:
-
你没有把“i”算进去。诠释 i = 0;将保持 0
-
您还没有在第一个 sn-p 中发布不起作用的代码。第二个 sn-p 将无限运行,因为您从不增加 i。但是想想看。假设您有 200 万个字符。而且您只需要偶数索引处的字符。结果数组将有多少个字符?你真的需要数到 200 万才知道吗?