相关疑难解决方法(0)

拆分正则表达式以提取连续字符的字符串

是否有一个正则表达式可以将String.split()字符串分解成连续的字符 - 即分割下一个字符与前一个字符不同的地方?

这是测试用例:

    String regex = "your answer here";
    String[] parts = "aaabbcddeee".split(regex);
    System.out.println(Arrays.toString(parts));
Run Code Online (Sandbox Code Playgroud)

预期产量:

[aaa, bb, c, dd, eee]
Run Code Online (Sandbox Code Playgroud)

虽然测试用例只有字母作为输入,但这只是为了清晰起见; 输入字符可以是任何字符.


请不要提供涉及循环或其他技术的"解决方法".

问题是为代码找到正确的正则表达式,如上所示 - 即只使用split()而不使用其他方法调用.找到能够"完成工作"的代码并不是问题.

java regex split

20
推荐指数
1
解决办法
2399
查看次数

字符更改时拆分字符串.可能的Regex解决方案?

我有一些String只由数字组成,我想在角色改变时拆分它.

例如:

  • "11101100112021120" 去: {"111", "11", "11", "2", "2", "11", "2"}
  • "222222222"{"222222222"}
  • "222222122"{"222222", "1", "22"}
  • "000000000"{}
  • "0000100000"{"1"}
  • "11121222212112133321"{"111", "2", "1", "2222", "1", "2", "11", "2", "1", "333", "2", "1"}

我想要一个很好的方法来做到这一点.

我知道两种方法:强制执行,或逐节添加.或者,我可以通过删除所有0并替换为0,然后在字符更改时添加0,然后在0上进行拆分,但这两种方式看起来都很愚蠢.如果有人对更好/更漂亮的方法有任何想法,正则表达式或逻辑,它会很好.

java regex string character

6
推荐指数
1
解决办法
2018
查看次数

Java 8 Stream并在执行缩减时维护索引

这些天我一直在试图弄清楚如何使用Java 8流API执行减少并同时维护索引.这是一个例子:

我有以下字符串:

String charSequence = "kjsfjsfajdsfjsaaaaaasssddfddddbbbdddaaa";
Run Code Online (Sandbox Code Playgroud)

我想通过Stream操作返回三元组 (I, N, C)

哪里:

  • C 是一个角色
  • N 是一些事件 - 应该是最大的
  • I 是第一次出现的字符串的索引(如果有多个字符串,则为第一个)

例子:

  • "ddaaaacccjcccccjjj" 回报 (10, 5, c)
  • "ddaaacccaaa"的第一次出现"aaa"2这样的结果将是: (2, 3, a)

一般来说,如果我可以返回所有具有长度为3的子串的字符,那将是很好的,这样结果就是两个三元组(I, N, C) C.但这是可选的.如果我得到第一个三重权利,我可以自己前进.

更新:

我不是在寻找替代解决方案.我可以用另一个API很好地实现它.我试图理解为什么维护索引是困难的,或者为什么不能这样做,如果是这样的话.反对的好论据很好.

java lambda mapreduce java-8 java-stream

-3
推荐指数
1
解决办法
1023
查看次数

标签 统计

java ×3

regex ×2

character ×1

java-8 ×1

java-stream ×1

lambda ×1

mapreduce ×1

split ×1

string ×1