当前位置: 首页 > 知识库问答 >
问题:

给定字符串要将字符串的某些部分过滤到arraylist中

燕凯旋
2023-03-14

我有字符串:

字符串s=#JAY125150012 90,#JAY22150043 00,

  • 我想过滤掉jay(125,222)之后的值并将其添加到单独的ArrayList中。
  • 我想过滤掉150012, 151243一起添加到单独的数组列表中。
  • 我想过滤掉90,00一起添加到单独的数组列表中。

我试着这么做,但它不完全符合我的要求

 Pattern reg = Pattern.compile(",");
ArrayList<String> jay = reg.splitAsStream(s))    
        .filter(role -> role.contains("Jay"))
        .map(String::trim)
        .collect(Collectors.toCollection(ArrayList::new));

共有1个答案

慕宜民
2023-03-14

如果我正确理解了你的情况,你有一个字符串,其模式为Jay

正如评论中所建议的,您可以使用regex实现。正则表达式将使用捕获组来识别这三个部分,并在每次匹配时检索它们。

<代码>\(Jay\d),(\d)(\d)

下面是测试regex的链接:

https://regex101.com/r/ULtDTu/1

以下是实现的代码片段:

public class Main {
    public static void main(String[] args) {
        String s = "#Jay125,150012 90,#Jay222,150043 00,";
        Pattern pattern = Pattern.compile("#(Jay\\d+),(\\d+) (\\d+)");
        Matcher matcher = pattern.matcher(s);

        List<String> listJay = new ArrayList<>();
        List<String> listFirstSubNum = new ArrayList<>();
        List<String> listSecSubNum = new ArrayList<>();

        while (matcher.find()) {
            listJay.add(matcher.group(1));
            listFirstSubNum.add(matcher.group(2));
            listSecSubNum.add(matcher.group(3));
        }

        System.out.println(listJay);
        System.out.println(listFirstSubNum);
        System.out.println(listSecSubNum);
    }
}

您还可以在此处测试代码:

https://ideone.com/0hwpyl

 类似资料:
  • 问题内容: 如何用另一部分替换字符串的特定部分? 输入字符串: 如何用其他方式更改字符串中的全部? 我认为我需要一个循环,但是我不确定如何使用它。 问题答案: 或者更精确地回答您的问题:

  • 当我尝试对输入进行限制时,我在java中遇到了很多麻烦。在此示例中,我需要字符串代码仅接受和等符号。我如何检查以确保没有数字、字母或其他符号?谢谢

  • 问题内容: 我只是想知道如何在PHP中某个子字符串之后删除所有内容 例如: 我想要它,以便它删除包括子字符串“ By”在内的所有文本。 谢谢 问题答案: 用简单的英语来说:给我字符串的一部分,从开始到结束,直到您第一次遇到分支的位置。

  • 问题内容: 我正在考虑使用删除字符串中的某些字符。目前尚不清楚将要删除哪些字符(即我想删除哪些字符),但是我会假定任何字符都是有效的(例如和之类的东西,等等)。 我遇到了http://www.java-tips.org/java-se-tips/java.lang/strip-certain-characters- from-a-string.html, 但是肯定有比遍历每个字符更好的方法… 有什

  • 我正在从treemap中获取值: --> 无法按升序对列表进行排序 我从idlatlng获得的值是:[<代码>LAT/LNG:(70.0187,-141.0205),LAT/LNG:(70.4515,-144.8163),LAT/LNG:(70.4515,-144.8163),LAT/LNG:(70.4515,-144.8163),LAT/LNG:(70.4515,-144.8163),LAT/L

  • 下面是我的代码: