用Java中的一个字符拆分一个单词

时间:2019-04-05 13:42:47

标签: java string split

请考虑以下示例。我想将字符串按字符'T'分为两部分

// input
String toDivideStr = "RaT15544";

// output
first= "RaT";
second = "15544";

我已经尝试过了:

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

输出:

first = "Ra"
second = "15544"

我该如何实现?

4 个答案:

答案 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);

Regex demo | Java demo

答案 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]);