在Java中,用字符拆分单词

在Java中,用字符拆分单词,java,string,split,Java,String,Split,考虑下面的例子。我想用字符'T'将字符串分成两部分 // input String toDivideStr = "RaT15544"; // output first= "RaT"; second = "15544"; 我试过这个: String[] first = toDivideStr.split("T",0); 输出: first = "Ra" second = "15544" 如何实现这一点?您需要定位最后一个“T”,然后拆分: StringToD.substring(Strin

考虑下面的例子。我想用字符'T'将字符串分成两部分

// input
String toDivideStr = "RaT15544";

// output
first= "RaT";
second = "15544";
我试过这个:

String[] first = toDivideStr.split("T",0);
输出:

first = "Ra"
second = "15544"

如何实现这一点?

您需要定位最后一个“T”,然后拆分:

StringToD.substring(StringToD.lastIndexOf("T") + 1)

对此,您可以使用带
split
limit参数的正向前瞻<代码>(?=\\d)

如果split method参数中只有
T
,则正则表达式引擎会使用此
T
。因此,发生的两个字符串拆分没有
t
。为了避免使用字符,我们可以使用非使用前瞻

(?=\\d)
-这将匹配遇到的第一个号码,但不会使用此号码

公共静态void main(字符串[]args){


您可以使用正向前视来断言一个数字,使用正向后视来断言
RaT

(?<=RaT)(?=\\d)

(?下面的
regex
可用于分别拆分字母和数字

String StringToD = "RaT15544";
String[] parts = StringToD.split("(?<=\\d)(?=\\D)|(?<=\\D)(?=\\d)");
System.out.println(parts[0]);
System.out.println(parts[1]);
StringToD=“RaT15544”;
String[]parts=StringToD.split((?)?
String str = "RaT15544";
for (String element : str.split("(?<=RaT)(?=\\d)"))
    System.out.println(element);
String StringToD = "RaT15544";
String[] parts = StringToD.split("(?<=\\d)(?=\\D)|(?<=\\D)(?=\\d)");
System.out.println(parts[0]);
System.out.println(parts[1]);