在Java中,如何查找字符串中的第一个字符是否为大写,而不需要正则表达式

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

在Java中,查找字符串中的第一个字符是否为大写,而不使用正则表达式。

提问于
用户回答回答于

假设s是非空的:

Character.isUpperCase(s.charAt(0))

或者,使其对具有以上代码点的字符有效。U+FFFF:

Character.isUpperCase(s.codePointAt(0));
用户回答回答于

其实,这比看起来更微妙。

上面的代码会给代码点高于U + FFFF的小写字符(例如U + 1D4C3,数学脚本小N)提供不正确的答案。String.charAt会返回一个UTF-16代理对,这不是一个字符,而是一半字符,可以这么说。所以你必须使用String.codePointAt,它返回一个高于0xFFFF的int(不是char)。你会这样做:

Character.isUpperCase(s.codePointAt(0));

扫码关注云+社区