java - 如何删除数组中的指定字符并将元素复制到另一个数组

标签 java arrays string error-handling

如何删除数组中的指定字符并将第一个数组的元素复制到第二个数组?

我尝试将数组转换为列表,以便能够检查数组是否包含此指定字符,然后我尝试删除此字符并通过复制第一个数组的元素但不包含指定字符来创建另一个数组。

系统显示此错误:

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.remove(AbstractList.java:161)
    at java.util.AbstractList$Itr.remove(AbstractList.java:375)
    at java.util.AbstractCollection.remove(AbstractCollection.java:269)
    at test4.test4.main(Question4.java:21)

这是我的代码:

package test4;

import java.util.Arrays;

public class test4 {

    public static void main(String[] args) {

        String[] a = new String[]{ "A", "b", "C", "$", "$", "$", "d", "s", "w", "t", "Z",
                "r", "I", "o", "A", "b", "C", "$", "$", "$", "d", "s", "w", "t" };

        String[] b = new String[a.length];
        int num = 0;
        for(int i =0; i<a.length; i++){

            if(Character.isUpperCase(i)){
                num++;
            }
            if(Arrays.asList(a).contains("$")){

                Arrays.asList(a).remove("$");
                b[i] =a[i];
            }
        }
        System.out.println("number os uperCase is: " + num);
        System.out.println();
        System.out.println("this is the new Array: " + Arrays.toString(b));

    }

}

谁能帮我解决这个问题吗?

最佳答案

Arrays.asList(a) 返回固定长度的列表,因此 Arrays.asList(a).remove("$"); 无法工作。

您可以改为迭代数组:

    int count = 0;
    for(int i =0; i<a.length; i++){
        if(Character.isUpperCase(a[i].charAt(0))){
            num++;
        }
        if(!a[i].equals("$")){ // copy only non "$" Strings to the output array
            b[count] =a[i];
            count++;
        }
    }

请注意,您的大写字符计数也是错误的,因为您在数组的索引上调用 Character.isUpperCase 而不是其中包含的字符。

您应该考虑的另一件事是将 String[] a 更改为 char[] a,因为看起来该数组中只有单个字符串。

关于java - 如何删除数组中的指定字符并将元素复制到另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27599605/

相关文章:

java - 签名后黑莓有权连接互联网吗?

java - 如何在 persistence.xml 中指定 JPA 2.1?

java - 为什么 Jackson 反序列化 json 无法按顺序打印对象数组?

java - 二维数组问题Java

java - 在 2D 数组 (8x8) 中,如何递归打印从起始位置到结束位置的连续数字?

javascript - 从 HTML 字符串中提取脚本标签

java - 如何获取字符串作为 UTF-8 代码序列

ios - 无法使用类型为 'init' 的参数调用 'NSNumber' (Swift)

Python 使用正则表达式和 replace() 在某些字符之间查找子字符串

ios - 使用组合字符串从 url 快速加载图像