Java 使用split方法拆分字符串

Java 使用split方法拆分字符串,java,android,string,parsing,split,Java,Android,String,Parsing,Split,我想要像这样拆分字符串: C:\Program\files\images\flower.jpg 但是,使用以下代码: String[] tokens = s.split("\\"); String image= tokens[4]; 我得到这个错误: 11-07 12:47:35.960: E/AndroidRuntime(6921): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_E

我想要像这样拆分字符串:

  C:\Program\files\images\flower.jpg     
但是,使用以下代码:

  String[] tokens = s.split("\\");
  String image= tokens[4];
我得到这个错误:

 11-07 12:47:35.960: E/AndroidRuntime(6921): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1:

您的原始输入文本应该是

 C:\\Program\\files\\images\\flower.jpg  
而不是

 C:\Program\files\images\flower.jpg  
试一试

在java(正则表达式世界)
\
是一个元字符。如果要将元字符视为普通字符,则应附加一个额外的\或用\Q\E将其括起来

下面是一些元字符

<([{\^-=$!|]})?*+.>

您需要使用
\\\\\
进行拆分,因为原始字符串应该具有
\\
。请使用以下测试用例亲自尝试:

    @Test
public void split(){
      String s = "C:\\Program\\files\\images\\flower.jpg";     


        String[] tokens = s.split("\\\\");
        String image= tokens[4];
        assertEquals("flower.jpg",image);
}

解释字符串有两个级别,首先是语言解析器将其设置为
“\”
,这是正则表达式引擎看到的,它是无效的,因为它是一个转义序列,没有转义字符

因此您需要使用
s.split(“\\\\”
),以便正则表达式引擎看到
\\
,这反过来意味着一个文本
\

如果在字符串文字中定义该字符串,则还必须转义其中的反斜杠:

String s = "C:\\Program\\files\\images\\flower.jpg";     
字符串[]标记=s.split(“\\\”)

试试这个:

String s = "C:/Program/files/images/flower.jpg";
String[] tokens = s.split("/");
enter code hereString image= tokens[4];
这很有效

    public static void main(String[] args) {
        String str = "C:\\Program\\files\\images\\flower.jpg";
        str = str.replace("\\".toCharArray()[0], "/".toCharArray()[0]);
        System.out.println(str);
        String[] tokens  = str.split("/");
        System.out.println(tokens[4]);      
    }

但是我想把原始字符串分成5部分:C:程序文件。jpg@Joseph82无论Esailija说什么都会对您起作用Duplicate@Joseph82,它起作用的原因是因为正则表达式模式以\符号开始和结束,您需要转义特殊字符\因此您以\符号开始和结束模式,然后模式本身就是特殊字符(带转义)\\。总之,它是\\\\I从web服务获取字符串。因此,我以这种方式(使用Ksoap2)在字符串中插入路径:s=response.getProperty(“image”).toString();
String s = "C:/Program/files/images/flower.jpg";
String[] tokens = s.split("/");
enter code hereString image= tokens[4];
    public static void main(String[] args) {
        String str = "C:\\Program\\files\\images\\flower.jpg";
        str = str.replace("\\".toCharArray()[0], "/".toCharArray()[0]);
        System.out.println(str);
        String[] tokens  = str.split("/");
        System.out.println(tokens[4]);      
    }