You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于逐次截取字符串首字符至空串及substring方法边界情况的技术咨询

关于Java String.substring(1)在字符串仅剩最后一个字符时的行为解答

放心啦,当字符串只剩最后一个字符(比如你例子里的"l")时,调用substring(1)不会触发错误,反而会正好返回你需要的空串""

在Java的String类中,substring(int beginIndex)方法的设计逻辑很明确:它会返回一个新字符串,包含原字符串中从beginIndex位置开始一直到末尾的所有字符。而当beginIndex的数值等于原字符串的长度时,就意味着没有字符可以截取了,这时候方法就会返回空字符串。

拿你的场景举例:当name的值是"l"时,它的长度是1,调用substring(1)时,传入的beginIndex刚好等于字符串长度,所以返回的结果就是空串"",完全契合你最终要把姓名处理为空串的需求。

你可以用这段代码验证一下:

String lastChar = "l";
String result = lastChar.substring(1);
System.out.println(result.equals("")); // 控制台会输出true
System.out.println(result.length()); // 控制台会输出0

内容的提问来源于stack exchange,提问作者Yohnson

火山引擎 最新活动