Java 字符串 split() 函数在分隔符具有单引号时无法按预期工作



我有一个小的Java问题,我不知道是否有人有快速的答案?

我正在循环访问一个输入字符串,可能是一个名称,其中可能包含单引号。 当它发生时,我希望能够在循环期间使用它。 下面是一个示例。

String input_string = "some name with o'clock for example";
String[] delims = {" ", "O'", "L'", "D'"};
...
for (String s : delims) {
  String[] split_words = input_string.split(delimiter);
  for (String word : split_words) {
      System.out.println("delimter is " + s);
      System.out.println("word is "+ word);
  }
}

输出为:

delimter is   word is some
delimter is   word is name
delimter is   word is with
delimter is   word is o'clock
delimter is   word is for
delimter is   word is example
delimter is 'O'' word is some name with o'clock for example
delimter is 'L'' word is some name with o'clock for example
delimter is 'D'' word is some name with o'clock for example

它适用于空格,但由于单引号,事情在点钟阶段变得可疑。 有什么想法吗?

String.split区分

大小写。它不会围绕您的"o'"分裂,因为您要求它围绕"O'"分裂。它与单引号无关。

// This loop prints:
//     some name with
//     clock for example
for (String s: "some name with o'clock for example".split("o'")) {
    System.out.println(s);
}

最新更新