Java 使用“"*&引用;

Java 使用“"*&引用;,java,regex,string,Java,Regex,String,让我们假设有一个字符串 String myString = "my*big*string*needs*parsing"; 我只想得到一个拆分字符串为“我的”,“大”,“字符串”,等等。 所以我试着 返回 java.util.regex.PatternSyntaxException:在索引0附近悬挂元字符“*” *是正则表达式中的一个特殊字符,所以我尝试转义 myString.split("\\*"); 同样的例外。我想有人会知道一个快速的解决办法。谢谢。 应该完全满足您的需要。split(

让我们假设有一个字符串

String myString =  "my*big*string*needs*parsing";
我只想得到一个拆分字符串为“我的”,“大”,“字符串”,等等。 所以我试着

返回 java.util.regex.PatternSyntaxException:在索引0附近悬挂元字符“*”

*
是正则表达式中的一个特殊字符,所以我尝试转义

myString.split("\\*");
同样的例外。我想有人会知道一个快速的解决办法。谢谢。


应该完全满足您的需要。

split(\\*”)
适合我。

myString.split(\\*”)在Java5上运行良好。你使用哪种JRE。

一次转义
\
不会在Mac OSX上的Java 6中起作用,因为
\
是为
\b\t\n\f\r\'“
\
保留的。你所拥有的似乎对我有用:

public static void main(String[] args) {
    String myString =  "my*big*string*needs*parsing";
    String[] a = myString.split("\\*");
    for (String b : a) {
        System.out.println(b);
    }
}
产出:

我的

字符串
需要
解析

您也可以使用


这是因为split方法采用正则表达式,而不是普通字符串

“*”字符表示与前一个字符零次或多次匹配,因此单独指定它是无效的

所以它应该像下面这样逃逸


split(\\*”

您的右\*行得通,我从数组中使用它…myArray[x]。split(\*”);它会引发异常,但如果我打开myArray[x]首先输入一个字符串,然后运行它…谢谢你的回答:)我的意思是在上面的注释中使用双斜杠…单斜杠不起作用;*不是一个特殊字符。我想你键入了:)
public static void main(String[] args) {
    String myString =  "my*big*string*needs*parsing";
    String[] a = myString.split("\\*");
    for (String b : a) {
        System.out.println(b);
    }
}
 StringTokenizer st = new StringTokenizer("my*big*string*needs*parsing", "\*");
 while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
 }