java - 在 Java 中拆分字符串?

标签 java arrays regex string split

这是在 Java 7 中

我不懂正则表达式,所以我想知道是否有人知道如何使用 split 方法从字符串中获取所有用户名:

{tchristofferson=10, mchristofferson=50}

然后将用户名添加到 String[] 数组?这些只是其中的两个用户名,但我希望它适用于无穷无尽的用户名。

用户名需要以下格式:

3-16个字符,无空格,A-Z大小写和0-9,唯一特殊字符为_(下划线)。

最佳答案

这看起来像 JSON,所以“正确”的答案可能是使用 JSON 解析器。如果这不是一个选项,您可以删除封闭的 {},根据 ", " 拆分字符串,然后根据 = 拆分每个字符串 签名,取第一项:

String input = "{tchristofferson=10, mchristofferson=50}";
List<String> users =
    Arrays.stream(input.substring(1, input.length() - 1).split(", "))
          .map(s -> s.split("=")[0])
          .collect(Collectors.toList());

关于java - 在 Java 中拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42460512/

相关文章:

java - Gson 无法将 String 值转换为 List,Java

Java 8 : Applying Stream map and filter in one go

JavaFx 从可初始化访问构造函数参数

Java 泛型 : Instantiating arrays with parameterized types: illegal?

javascript - 如何将数组的数组合并到一个数组中(在 JavaScript 中)?

c - 数组、指针和Sizeof关系

来自字符串的 Java 正则表达式

java - 在 CentOs 中将 java 应用程序作为服务运行时遇到错误 : nested exception is java. lang.UnsatisfiedLinkError

java - System.out.print 删除 Matcher 类异常

regex - 用于 git 合并冲突的 Vim 正则表达式