【问题标题】:What does s.split("\\s+")) means here in the below code? [duplicate]s.split("\\s+")) 在下面的代码中是什么意思? [复制]
【发布时间】:2017-02-26 16:42:45
【问题描述】:

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

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));
      }


}

示例: “约翰·菲茨杰拉德·肯尼迪”

返回:“jfk”

【问题讨论】:

标签: java arrays string for-loop


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    它的意思很简单:在给定的正则表达式上分割输入字符串s

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

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

    当您选择每个字符串的第一个字符时,您会得到“jfk”

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多