我有一个字符串,比如说
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 :(得分:4)
String.split
将正则表达式作为参数。 )
是regural表达式的特殊字符,因此您需要使用\
将其转义。由于在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的限制。这意味着它只将String分成两部分。这是为了解决您要提取的String可能还包含)
的情况,例如"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);
答案 1 :(得分:2)
尝试以这种方式分裂。
/* Note how this code is indented and looks clean */
#include <stdio.h>
int main(void) /* Valid signature of main */
{
int input, c; /* Note the extra variable */
printf("\nPlease Enter A Number Between 1 and 100\n");
scanf("%d", &input);
printf("\nYou Entered %d\n", input);
if(input <= 0 || input > 100) /* Note the use of || instead of && */
{
printf("Error!! Please Enter A Number Between 1 and 100 \n");
}
else /* Note the else */
{
if(input % 2 == 0)
{
printf("\n %d is EVEN \n", input);
}
else
{
printf("\n %d is ODD \n", input);
}
}
while((c = getchar()) != '\n' && c != EOF); /* Clear the stdin */
getchar(); /* Wait for a character */
}
答案 2 :(得分:0)
我会做这样的事情:
String str= "1.) JAVA is fun.Play with 12";
String separateString;
int index = str.indexOf(')');
if (index >= 0) {
separateString = str.substring(index);
}