java - 将 String 转换为 Char 数组,然后仅返回数组的偶数索引

标签 java arrays loops

所以我是 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/

相关文章:

javascript - 在推送之前检查数组中是否存在现有数组

c++ - 在C++中对π的莱布尼兹求和的计数迭代

loops - 将递归过程转变为迭代过程 - SICP 练习 1.16

javascript - 如何在 Javascript 中获取动态对象属性?

javascript - 是否可以迭代数组中的每个项目并输出为 HTML?

java - 保存页面站点

Java:就地对 ArrayList 进行排序

java - SimpleDateFormat 的 Checkstyle/PMD 规则不是线程安全警告

java - Maven 不调用 testng 参数

c# - 使用 BitmapSource、PngBitmapEncoder/Decoder 时,在 PNG 中保存 8 位索引数据会改变原始字节