当前位置: 代码迷 >> java >> 当我将一个字符串拆分为多个字符串时,如何获得该字符串的特定部分?
  详细解决方案

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

热度:28   发布时间:2023-08-02 10:31:18.0

我试图找到一种方法,可以将较大的字符串分解为较小的字符串后再访问特定的字符串。 下面是一个示例:现在,有了两个字符串,如何获得第一个或第二个字符串? 因为有括号,所以我认为它是一个字符串数组,所以我认为我所要做的只是做类似System.out.println(parts [0]);的事情。 但这不起作用..

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

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

您需要像这样放置一个数组:

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

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

如果只删除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*");

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

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)

  相关解决方案