删除字符串arraylist java中的元素
您好,我是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
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]", ""));
}