2015-10-10 40 views
2

我有一个字符串,说从字符串中提取的字符只,并将其存储在另一个字符串

String str = "1.) Java is fun. play with 12" 

我想要的一切后)存储作为单独的字符串。什么是最好的方式来做到这一点?我试着劈裂串上")"

String det[] = str.split(")"); 

但它给:

java.util.regex.PatternSyntaxException:无与伦比的闭幕 ')'`

样品输入:

String str = "1.) JAVA is fun.Play with 12" 

取样输出:

String result = "JAVA is fun.Play with 12" 
+0

String det [] = str.split(“)”); – user3681970

回答

4

String.split以正则表达式为参数。 )是管理表达式的特殊字符,因此您需要使用\来逃避它。由于在Java中\也需要转义,所以需要拆分\\)

String str = "1.) Java is fun. play with 12"; 
String[] tokens = str.split("\\)", 2); // split only in 2 parts 
System.out.println(tokens[1]); 

请注意,在此代码中,我指定split调用的限制值为2。这意味着它只会将字符串分成两部分。这是为了解决您想要提取的字符串也可能包含)的情况,如输入"1.) Java is fun :). Play with 12"

作为一个方面说明,在这种情况下,它会更容易(也许更快)使用substring代替split,像这样:

String str = "1.) Java is fun. play with 12"; 
String result = str.substring(str.indexOf(')') + 1); 
System.out.println(result); 
2

试着用这种方式拆分。

public static void main(String args[]) { 
    String s = "1.) Java is fun. play with 12"; 
    String[] r = s.split("\\)"); 
    for (int i = 0; i<r.length; i++){ 
     System.out.println(""+r[i]); 
    } 
} 
+0

它工作。我的坏:P会在几分钟内接受答案:) – user3681970

0

我会做这样的事情:

String str= "1.) JAVA is fun.Play with 12"; 
String separateString; 
int index = str.indexOf(')'); 
if (index >= 0) { 
    separateString = str.substring(index); 
} 
相关问题