在试图将较大的字符串分解为较小的字符串后,我试图找到一种访问特定字符串的方法。下面是一个示例: 因此,既然有两个字符串,如何获得第一个或第二个字符串?因为有括号,所以我认为它是一个字符串数组,所以我认为我所要做的只是做类似System.out.println(parts [0]);的事情。但这不起作用。
String string = "hello ::= good morning";
String parts = Arrays.toString(string.split("::="));
System.out.println(parts);
输出应该是[你好,早上好]
答案 0 :(得分:3)
您需要像这样放置一个数组:
String s = "I Like Apples."
String[] parts = s.split(" ");
for(String a : parts)
System.out.println(a);
答案 1 :(得分:2)
如果您仅删除Arrays.toString(...
,就可以正常工作:
String string = "hello ::= good morning";
String parts[] = string.split("::=");
System.out.println(parts[0]);
更新:
要打印整个阵列,可以执行以下操作:-
System.out.println(Arrays.toString(parts));
此外,要修剪空格,您可以将分割线更改为:-
String parts[] = string.trim().split("\\s*::=\\s*");
答案 2 :(得分:0)
对于我来说,这似乎是使用正则表达式进行模式分组的更好用例。我将::=
的左侧和右侧分组,之后是可选的空白。例如,
String string = "hello ::= good morning";
Pattern p = Pattern.compile("(.+)\\s*::=\\s*(.+)");
Matcher m = p.matcher(string);
if (m.find()) {
System.out.println(m.group(2));
}
哪个输出
good morning
如果您还想要“ hello”,那就是m.group(1)