我得到了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)所以我需要一种摆脱这些数字的方法。要么如何解决这个错误,要么如果你有更好的想法,我也会对此持开放态度。
答案 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);
}