2

i have string which is separated by "." when i try to split it by the dot it is not getting spitted.

Here is the exact code i have. Please let me know what could cause this not to split the string.

public class TestStringSplit {
    public static void main(String[] args) {
        String testStr = "[Lcom.hexgen.ro.request.CreateRequisitionRO;";
        String test[] = testStr.split(".");
        for (String string : test) {
            System.out.println("test : " + string);
        }
        System.out.println("Str Length : " + test.length);
    }
}

I have to separate the above string and get only the last part. in the above case it is CreateRequisitionRO not CreateRequisitionRO; please help me to get this.

4

7 回答 7

5

您可以拆分此字符串StringTokenizer 并获取点之间的每个单词

StringTokenizer tokenizer = new StringTokenizer(string, ".");
String firstToken = tokenizer.nextToken();
String secondToken = tokenizer.nextToken();

正如你正在寻找最后一个字CreateRequisitionRO你也可以使用

String testStr = "[Lcom.hexgen.ro.request.CreateRequisitionRO;";
String yourString = testStr.substring(testStr.lastIndexOf('.')+1, testStr.length()-1);
于 2013-04-24T06:16:35.947 回答
4
String testStr = "[Lcom.hexgen.ro.request.CreateRequisitionRO;";
String test[] = testStr.split("\\.");
for (String string : test) {
    System.out.println("test : " + string);
}
System.out.println("Str Length : " + test.length);

这 ”。” 是一个正则表达式通配符,您需要对其进行转义。

于 2013-04-24T06:14:56.300 回答
3

请注意,它String.split接受正则表达式,并且.在正则表达式中具有特殊含义(匹配除行分隔符之外的任何字符),因此您需要对其进行转义:

String test[] = testStr.split("\\.");

请注意,您.在正则表达式级别转义一次:\.,并且要\.在字符串文字中指定,\需要再次转义。所以要传递给的字符串String.split"\\.".

或者另一种方法是在一个字符类中指定它,其中.失去了它的特殊含义:

String test[] = testStr.split("[.]");
于 2013-04-24T06:15:09.513 回答
3

更改String test[] = testStr.split(".");String test[] = testStr.split("\\.");

由于String.split的参数采用正则表达式参数,因此您需要转义点字符(这意味着正则表达式中的通配符):

于 2013-04-24T06:14:28.120 回答
2

您需要转义,.因为它是一个特殊字符,可以使用它们的完整列表。您的分割线需要是:

String test[] = testStr.split("\\.");
于 2013-04-24T06:16:27.760 回答
1

Split 将正则表达式作为参数。如果你想用文字“.”分割,你需要转义点,因为它是正则表达式中的特殊字符。尝试在您的点之前放置 2 个反斜杠(“\\.”) - 希望这可以满足您的需求。

于 2013-04-24T06:17:42.017 回答
1
String test[] = testStr.split("\\.");
于 2013-04-24T06:18:21.317 回答