从数组中删除数字

时间:2013-12-20 13:09:46

标签: java android arrays string

我得到了ArrayList" ArrayList1"内容如

0090113itemone ,
1000120itemtwo ,
0090113itemthree

项目前面总有7个数字。

现在我想删除数字,只将项目分配给ListView。 我尝试使用

Array转换为String
String[] arr = ArrayList1.toArray(new String[ArrayList1.size()]);

然后使用substring从字符串中删除前7个位置

result.append(arr.substring(0,7));

但是这会给我一个错误无法在数组类型String []

上调用substring(int,int)

所以我需要一种摆脱这些数字的方法。要么如何解决这个错误,要么如果你有更好的想法,我也会对此持开放态度。

7 个答案:

答案 0 :(得分:1)

你必须迭代数组并为每个字符串执行它,因为substring()是字符串类的方法而不是数组类的方法。错误消息无法在数组类型String [] 上调用substring(int,int),告诉您尝试构建Stringarray的子​​字符串。

变化:

result.append(arr.substring(0,7));

为:

result.append(arr[0].substring(0,7));

并输入for循环:

for(int i = 0; i<arr.length(); i++)
    result.append(arr[i].substring(0,7));

答案 1 :(得分:0)

for (int i=0;i<arr.length;i++) {
   arr[i] = arr[i].substring(7);
}

答案 2 :(得分:0)

循环遍历ArrayList以开始。
然后至少有两个选项:

1)使用String.replace方法。

String x = str.replaceAll("\\d", ""); 

在ArrayList的每个字符串上调用此方法 然后根据需要处理你得到的x。

2)但是如果你的字符串在其后面可能包含数字 位置7,你想要包括那些数字,然后循环
通过字符串并执行:

String x = str.substring(7);

然后用x。

做你需要的

答案 3 :(得分:0)

这样做

for (String s:arr) {
    result.append(s.replaceAll("\\d",""));
}

答案 4 :(得分:0)

试试这段代码:

for (String s:arr) {
    result.append(s.substring(7,s.length()));
}

答案 5 :(得分:0)

您必须在复制之前编辑每个元素。我重申了以下几点:

List<String> newList = new ArrayList<>();    
for (String element : arrayList1)
{
  String elementWithoutNumber = element.subString(7);
  newList.add(elementWithoutNumber);
}
String[] arr = ArrayList1.toArray(new String[newList.size()]);

答案 6 :(得分:0)

数组类型 String [] 上的错误“无法调用 substring(int,int)”表示该方法不适用于此类对象。

它适用于字符串。

您不需要像这样在ArrayList中创建一个数组:

String[] arr = ArrayList1.toArray(new String[ArrayList1.size()]);

相反,请立即使用您的ArrayList。我强烈建议将其重命名为Java Camel Case:“arrayList1”以避免与类混淆。使用正则表达式替换字符串中的数字。尝试运行此for循环:

for (String item : arrayList1) {
    String result = item.replaceAll("[0-9]","");
    System.out.println(result);
}