由于某种原因,当我使用"|"
来解析字符串时,这种解析技术不起作用。
我的java代码看起来像这样
public class Testing{
public static void main(String[] args){
String sentence = "SA|2|What is the capital of Italy|Rome";
System.out.println(sentence);
System.out.println("---------------------------");
String[] tokens = sentence.split("|");
for(String word: tokens)
System.out.println(word);
}
}
所以我的输出因某种原因看起来像这样
SA|2|What is the capital of Italy|Rome
---------------------------
S
A
|
2
|
W
h
a
t
i
s
t
h
e
c
a
p
i
t
a
l
...(and so on)
我想要它做的是显示像这样的整个字符串而不是像这样给我的
SA|2|What is the capital of Italy|Rome
---------------------------
SA
2
What is the capital of Italy
Rome
有人知道为什么它会导致每行打印每个字母并且不会用每个字打印出来吗?
答案 0 :(得分:0)
在SO
上参考以下答案Splitting a Java String by the pipe symbol using split("|")
你需要说sentence.split("\\|");
这个的原因是,正如我在评论中提到的那样,是OR的符号。因此,假设您想要在点或白色空间上分割某些内容,您会说出句子.split(“\。|”)
答案 1 :(得分:0)
public static void main(String []args){
String sentence = "SA|2|What is the capital of Italy|Rome";
System.out.println(sentence);
System.out.println("---------------------------");
String[] tokens = sentence.split("\\|");
for(String word: tokens){
System.out.println(word);
}
}
使用上面的代码。至于特殊字符转义语法是必需的。所以在你的特殊角色之前使用\。
答案 2 :(得分:0)
将拆分更改为
final String[] tokens = sentence.split("\\|");
答案 3 :(得分:0)
String[] tokens = sentence.split("\\|");
这对你有用。