如何在不检查字符串大小或超出界限的情况下获得字符串的前n个字符?

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

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

n在不首先进行大小检查的情况下如何获得Java中字符串的第一个字符(内联是可接受的)?还是冒着风险IndexOutOfBoundsException

提问于
用户回答回答于

这里有一个很好的解决方案:

String upToNCharacters = s.substring(0, Math.min(s.length(), n));
用户回答回答于

org.apache.commons.lang.StringUtils.substring(String s, int start, int len)

Javadoc说:

StringUtils.substring(null, *, *) = null StringUtils.substring("", * , *) = ""; StringUtils.substring("abc", 0, 2) = "ab" StringUtils.substring("abc", 2, 0) = "" StringUtils.substring("abc", 2, 4) = "c" StringUtils.substring("abc", 4, 6) = "" StringUtils.substring("abc", 2, 2) = "" StringUtils.substring("abc", -2, -1) = "b" StringUtils.substring("abc", -4, 2) = "ab"

从而:

StringUtils.substring("abc", 0, 4) = "abc"

扫码关注云+社区