相关疑难解决方法(0)

有没有办法用String.split()拆分字符串并包含分隔符?

我正在尝试将包含所有非字母数字字符的字符串拆分为分隔符,但Java的String.split()方法会丢弃结果数组中的分隔符字符.有没有办法像"\ W"正则表达式模式那样分割字符串,但保留分隔符?

java regex string split

42
推荐指数
0
解决办法
3万
查看次数

Java分裂正在吃我的角色

我有这样的字符串String str = "la$le\\$li$lo".

我想拆分它以获得以下输出"la","le\\$li","lo".\ $是一个$转义所以它应该留在输出中.

但是,当我做 str.split("[^\\\\]\\$")ÿ得到"l","le\\$l","lo".

从我得到的我的正则表达式匹配$和i $然后删除.知道如何让我的角色回来吗?

谢谢

java regex string split

16
推荐指数
1
解决办法
4928
查看次数

使用Java正则表达式中的.find()迭代String

我正在尝试使用正则表达式解决来自codingbat.com的问题.

我是新手,所以一步一步的解释将不胜感激.我可以相对容易地使用String方法解决这个问题,但我正在尝试使用正则表达式.

这是提示:给定一个字符串和一个非空字符串,在字符串中每次出现单词之前和之后返回由每个char组成的字符串.忽略在单词之前或之后没有字符的情况,如果字符位于两个单词之间,则可以包括两次char.

wordEnds("abcXY123XYijk", "XY") ? "c13i"
wordEnds("XY123XY", "XY") ? "13"
wordEnds("XY1XY", "XY") ? "11"
Run Code Online (Sandbox Code Playgroud)

等等

我的代码到目前为止:

String regex = ".?" + word+ ".?";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);

String newStr = "";
while(m.find())
    newStr += m.group().replace(word, "");

return newStr;
Run Code Online (Sandbox Code Playgroud)

问题是当一行中有多个单词实例时,程序会错过单词前面的字符,因为m.find()会超出它.

例如:wordEnds("abc1xyz1i1j", "1")应该返回"cxziij",但我的方法返回"cxzij",而不是重复"i"

我将非常感谢一个非混乱的解决方案,并且可以解释我可以应用于其他一般正则表达式问题.

java regex string

5
推荐指数
1
解决办法
6339
查看次数

如何将字符串拆分为两部分

我正在从数据库中检索字符串并将其存储到for循环内的String变量中.我正在检索的几个字符串的形式为:

https://www.ppltalent.com/test/en/soln-computers-ltd

很少有人的形式

https://www.ppltalent.com/test/ja/aman-computers-ltd

我希望将字符串分成两个子串,即 https://www.ppltalent.com/test/en/soln-computers-ltdas https://www.ppltalent.com/test/en/soln-computers-ltd.

如果我只有它,它可以很容易地分开/en.

String[] parts = stringPart.split("/en");
System.out.println("Divided String  : "+ parts[1]);
Run Code Online (Sandbox Code Playgroud)

但在它的许多字符串中/jr,/ch等等.

那么如何将它们分成两个子字符串呢?

java

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

标签 统计

java ×4

regex ×3

string ×3

split ×2