Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除字符串arraylist java中的元素_Java_Android - Fatal编程技术网

删除字符串arraylist java中的元素

删除字符串arraylist java中的元素,java,android,Java,Android,您好,我是Java新手,我刚刚在数组列表中放置了一个字符串列表,我想删除下面每个字符串中的某些元素 ArrayList<String> data = new ArrayList<String>(); data.add( "ksh10,000"); data.add( "ksh20,000"); data.add( "ksh30,000"); data.add( "ksh40,000"); data.add( "ksh50,000'); 我试过的 for (in

您好,我是Java新手,我刚刚在数组列表中放置了一个字符串列表,我想删除下面每个字符串中的某些元素

ArrayList<String> data = new ArrayList<String>();


data.add( "ksh10,000"); 
data.add( "ksh20,000");  
data.add( "ksh30,000");
data.add( "ksh40,000");
data.add( "ksh50,000');
我试过的

for (int i = 0; i < data.lenght(); i++ ) {
    data.set(i, data.get(i).replace("ksh", ""));
    data.set(i, data.get(i).replace(",",""));
}
for(int i=0;i

。提前感谢您的帮助。

这是使用
API的一个重大变化。我将把实现的一部分留给您作为练习

import java.util.stream.*;

class Solution { 

String generateOutput (ArrayList<String> inputValues) { 
  return data.stream()
             .map(this::scrubValue)
             .collect(Collectors.joining(","));
}

String scrubValue (String input) {
  // you'll need to write code here that takes an input like "ksh10,000" and returns "10000"
}

}
import java.util.stream.*;
类解决方案{
字符串生成输出(ArrayList inputValues){
返回data.stream()
.map(this::scrubValue)
.collect(收集器。连接(“,”);
}
字符串scrubValue(字符串输入){
//您需要在此处编写代码,该代码接受类似“ksh10000”的输入并返回“10000”
}
}
公共类主{
公共静态void main(字符串[]args){
ArrayList=新建ArrayList();
列表。添加(“KSH10000”);
列表。添加(“KSH20000”);
列表。添加(“KSH30000”);
列表。添加(“KSH40000”);
列表。添加(“KSH50000”);
打印字符串(列表);
ArrayList newList=editList(列表);
打印字符串(newList);
}
公共静态ArrayList编辑列表(ArrayList列表){
ArrayList newList=新的ArrayList();
for(字符串str:list){
字符串temp=“”;
for(字符c:str.toCharArray()){
if(字符isDigit(c))
温度+=c;
}
添加(临时);
}
返回newList;
}
公共静态无效打印字符串(ArrayList列表){
for(字符串str:list){
系统输出打印项次(str);
}
}
}

最好的方法(如果您不知道字符串的确切结构)是检查字符是否为数字,如果是,则将其添加到字符串中,对列表中的每个字符串循环此操作,并返回一个新列表,其中包含第一个列表中字符串的编辑版本。

如果您只想更改输入数据的值,循环遍历每个元素并使用
替换
方法:

for (int i = 0; i < data.size(); i++ ) {
    data.set(i, data.get(i).replace("ksh", ""));
    data.set(i, data.get(i).replace(",",""));
}
for(int i=0;i

这将用空字符串替换“ksh”字符串和逗号。正如Snoob所说,
replace()
只返回新字符串,因为字符串是不可变的

我知道您只想从字符串的ArrayList中提取数字。因此,我们可以使用诸如[^0-9]之类的正则表达式删除所有非数字,如下所示

String number = stringData.replaceAll("[^0-9]", "");
这里,stringData是只想从中提取数字的字符串。 下面是循环

for(int i=0; i<data.size(); i++){
    data.set(i, data.get(i).replaceAll("[^0-9]", ""));
    }

用于(int i=0;i您是如何尝试的?使用
String发布TooMemory字符串是不可变的。replace
将只返回一个新字符串,而不是替换旧字符串。希望这将帮助您我们需要更多的代码。向我们展示您的尝试。您的问题中的数据和金钱是如何关联的?
ArrayList
继承自
AbstractCollection
已经实现了
toString
方法,您可以使用System.out.println(列表)。我现在的位置就像凌晨3点……感谢Nordii,这就像一个魅力
String number = stringData.replaceAll("[^0-9]", "");
for(int i=0; i<data.size(); i++){
    data.set(i, data.get(i).replaceAll("[^0-9]", ""));
    }