s.split(" \\ s +"))在下面的代码中是什么意思?

时间:2016-10-17 15:55:05

标签: java arrays string for-loop

我在下面的代码中给出了一个字符串名称字符串。该字符串包含一个短语,即由单个空格分隔的一个或多个单词。该程序计算并返回该短语的首字母缩写词。

import java.math.*;
import java.util.*;
import static java.util.Arrays.*;
import static java.lang.Math.*;
public class Initials {
  public String getInitials(String s) {

    String r = "";
    for(String t:s.split("\\s+")){
      r += t.charAt(0);
    }
    return r;
  }


  void p(Object... o) {
          System.out.println(deepToString(o));
      }


}

实施例: " john fitzgerald kennedy"

返回:" jfk"

2 个答案:

答案 0 :(得分:5)

split("\\s+")会将字符串拆分为数组字符串,其中分隔符为空格或多个空格。 \s+是一个或多个空格的正则表达式。

答案 1 :(得分:1)

它只是意味着:在给定的正则表达式上对输入字符串 s 进行切片。

那个正则表达式只是说:“一个或多个空格”。 (有关这些模式的含义,请参阅here

因此:对split的调用返回一个带有“john”,“fitzgerald”的数组,...... 该数组使用for-each类型的for循环直接“处理”。

然后当你选择每个字符串的第一个字符时,你最终会得到“jfk”