【问题标题】:Splitting String to produce desired array? [closed]拆分字符串以生成所需的数组? [关闭]
【发布时间】:2013-02-19 04:08:39
【问题描述】:

假设我有文本:aabbaaccddaaee。我需要拆分字符串以生成数组:[“aa”、“aa”、“aa”]。我将如何做到这一点?

编辑
为了搞清楚,我让用户输入 {blocked-users(user1|user2|user3)},我需要找到所有出现的 {blocked-users(.*)} 并获取它们的数组,以便解析他们输入的用户。

【问题讨论】:

  • 使用正确的正则表达式。你试过什么没用?
  • 您需要指定为什么该特定字符串的输出应为["aa","aa","aa"]
  • @jitendra - 我怀疑这是作业,因为这是一个非常简单的问题,你在现实世界中永远找不到。
  • @jitendra 用户在配置中输入了一个字符串,例如:{blocked-users(user1|user2|user3)} 除了将字符串放在括号内之外,我一切正常。
  • @BrianRoach 从 OP 的评论来看,这似乎不是一个家庭作业,但他以不恰当的方式提出了问题。

标签: java regex arrays split


【解决方案1】:
System.out.println( Arrays.toString( "aabbaaccddaaee".split("[^a]+") ) );
// [aa, aa, aa]

要获取所有被阻止的用户,您可以编译模式

"\\{blocked-users\\(([^)]+)\\)\\}"

并在循环中使用find,将捕获组() 拆分到| 上,为每个匹配生成一组被阻止的用户,即group(1).split("\\|")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多