请考虑以下示例。我想将字符串按字符'T'分为两部分
// input
String toDivideStr = "RaT15544";
// output
first= "RaT";
second = "15544";
我已经尝试过了:
String[] first = toDivideStr.split("T",0);
输出:
first = "Ra"
second = "15544"
我该如何实现?
答案 0 :(得分:2)
您需要做的是找到最后一个“ T”,然后拆分:
StringToD.substring(StringToD.lastIndexOf("T") + 1)
答案 1 :(得分:1)
您可以使用正向先行来断言一个数字,并使用正向先行后断来断言RaT
。
(?<=RaT)(?=\\d)
例如:
String str = "RaT15544";
for (String element : str.split("(?<=RaT)(?=\\d)"))
System.out.println(element);
答案 2 :(得分:0)
您可以为此使用带有split
极限参数的正向超前。 (?=\\d)
在split方法参数中只有T
的情况下,正则表达式引擎消耗了T
。因此,发生的两个字符串拆分没有T
。为了避免消耗字符,我们可以使用非消耗性的先行方式。
(?=\\d)
-这将与遇到的第一个数字匹配,但不会消耗该数字
public static void main(String [] args){
String s = "RaT15544";
String[] ss = s.split("(?=\\d)", 2);
System.out.println(ss[0] + " " + ss[1]);
}
答案 3 :(得分:0)
下面的regex
可用于分别拆分字母和数字。
String StringToD = "RaT15544";
String[] parts = StringToD.split("(?<=\\d)(?=\\D)|(?<=\\D)(?=\\d)");
System.out.println(parts[0]);
System.out.println(parts[1]);