为了账号安全,请及时绑定邮箱和手机立即绑定

删除字符串arraylist java中的元素

删除字符串arraylist java中的元素

叮当猫咪 2021-04-30 08:48:05
大家好,我是使用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');所以我想删除字符串之间的“ ksh”和逗号,以便得到像10000,20000,30000,40000,50000我尝试了什么for (int i = 0; i < data.lenght(); i++ ) {    data.set(i, data.get(i).replace("ksh", ""));    data.set(i, data.get(i).replace(",",""));}。在此先感谢您的帮助。
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

如果您要做的只是更改数据中的值,请遍历每个元素并使用以下replace方法:


for (int i = 0; i < data.size(); i++ ) {

    data.set(i, data.get(i).replace("ksh", ""));

    data.set(i, data.get(i).replace(",",""));

}

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


查看完整回答
反对 回复 2021-05-12
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

public class Main {


public static void main(String[] args) {

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

    list.add( "ksh10,000");

    list.add( "ksh20,000"); 

    list.add( "ksh30,000"); 

    list.add( "ksh40,000"); 

    list.add( "ksh50,000"); 

    printStrings(list);


    ArrayList<String> newList = editList(list);

    printStrings(newList);


}


public static ArrayList<String> editList(ArrayList<String> list){

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


    for(String str : list) {

        String temp = "";

        for(char c : str.toCharArray()) {

            if(Character.isDigit(c))

                temp += c;

        }

        newList.add(temp);

    }


    return newList;

}


public static void printStrings(ArrayList<String> list) {

    for(String str : list){

        System.out.println(str);

    }

}


}

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


查看完整回答
反对 回复 2021-05-12
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

这是使用StreamAPI的巨大变化。我将把练习的一部分留给您作为练习。


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"

}


}


查看完整回答
反对 回复 2021-05-12
  • 3 回答
  • 0 关注
  • 224 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信