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]);
}