Java 字符串在拆分时变为空白
输入到此解析器的原始字符串的格式类似于“DATA:3,3 | 1”。我试图将其解析为“数据:Java 字符串在拆分时变为空白,java,string,parsing,split,Java,String,Parsing,Split,输入到此解析器的原始字符串的格式类似于“DATA:3,3 | 1”。我试图将其解析为“数据:x,y|t”的格式。问题是当字符串位置与字符串数据分离时,它是空的。为什么?因为split()接受一个正则表达式作为参数,|实际上是一个正则表达式特殊字符(也是一个语法有效的正则表达式,它解释了不会引发错误) 您需要转义它:sp00m说您可以使用split(\\\\;”),或者split([\\;]): split(“\\\\\”)或split([\\]]) 或者你可以使用 String data = l
x
,y
|t
”的格式。问题是当字符串位置
与字符串数据
分离时,它是空的。为什么?因为split()
接受一个正则表达式作为参数,|
实际上是一个正则表达式特殊字符(也是一个语法有效的正则表达式,它解释了不会引发错误)
您需要转义它:sp00m说您可以使用
split(\\\\;”)
,或者split([\\;])
:
split(“\\\\\”)
或split([\\]])
或者你可以使用
String data = line.split(":")[1];
String location = data.split("|")[0];
String type = data.split("|")[1];
System.out.println("D: " + type);
int x = Integer.parseInt(location.split("-")[0]);
int y = Integer.parseInt(location.split("-")[1]);
int t = Integer.parseInt(type);
要预先测试字符串是否包含字符,只需使用
字符串#contains()
split(Pattern.quote("|"));
if (string.contains("\\|")) {
// Split it.
}
else {
throw new IllegalArgumentException("String " + string + " does not contain |");
}