Java 当我将一个字符串拆分为多个字符串时,如何获取该字符串的特定部分?

Java 当我将一个字符串拆分为多个字符串时,如何获取该字符串的特定部分?,java,Java,我试图找到一种方法,在一个较大的字符串被分解成较小的字符串后,访问一个特定的字符串。以下是一个例子: 既然有两个字符串,那么如何得到第一个或第二个呢?因为有括号,我认为它是一个字符串数组,所以我认为我所要做的就是做一些类似System.out.println(parts[0])的事情;但是那不起作用 String string = "hello ::= good morning"; String parts = Arrays.toString(string.split("::=")); Syst

我试图找到一种方法,在一个较大的字符串被分解成较小的字符串后,访问一个特定的字符串。以下是一个例子: 既然有两个字符串,那么如何得到第一个或第二个呢?因为有括号,我认为它是一个字符串数组,所以我认为我所要做的就是做一些类似System.out.println(parts[0])的事情;但是那不起作用

String string = "hello ::= good morning";
String parts = Arrays.toString(string.split("::="));
System.out.println(parts);

输出应该是[hello,早上好]

您需要将其放入如下数组:

String s = "I Like Apples."    
String[] parts = s.split(" ");

for(String a : parts)
 System.out.println(a);

您需要将其放入如下数组:

String s = "I Like Apples."    
String[] parts = s.split(" ");

for(String a : parts)
 System.out.println(a);

如果您只删除
数组,它可以正常工作。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*");

如果您只删除
数组,它可以正常工作。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*");

对于使用正则表达式进行模式分组来说,这似乎是一个更好的用例。我会将
:=
的左侧和右侧分组,前面和后面是可选的空白。例如

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)

对我来说,这似乎是使用正则表达式进行模式分组的更好的用例。我会将
::=
的左侧和右侧分组,前面和后面是可选的空白。例如

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

如果你还想说“你好”,那将是
m.group(1)

。你甚至可以通过正则表达式拆分获得更高的级别。如果你需要,这里有一个正则表达式的参考:随时。你甚至可以通过正则表达式拆分获得更高级别。如果你需要,这里有一个正则表达式的参考: