You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打印字符串数组首元素首字符与尾元素尾字符?代码输出异常求助

问题分析与修复方案

你的代码错误出在获取最后一个字符串的最后一个字符的逻辑上:
parts[right].charAt(right)里的right是字符串数组的最后一个元素索引(比如测试用例"Don't read this"拆分后数组长度为3,right的值是2),但这个索引和最后一个字符串的长度没有关联。测试用例中最后一个字符串是"this",它的长度是4,最后一个字符的索引应该是4-1=3,而非数组索引2,这就导致了错误输出。

修复后的代码

class Solution {
    public void sol(String s) {
        String [] parts = s.split(" ");

        int left = 0;
        int right = parts.length - 1;

        // 打印第一个字符串的第一个字符
        System.out.println(parts[left].charAt(left));
        System.out.println("_____________");
        // 打印最后一个字符串的最后一个字符
        String lastString = parts[right];
        System.out.println(lastString.charAt(lastString.length() - 1));
    }
 }
class Main{
    public static void main(String[] args) {
        Solution s = new Solution();
        s.sol("Don't read this");
    }
}

额外注意事项

如果需要让代码更健壮,建议增加边界判断:

  • 先检查parts.length > 0,避免数组为空时出现ArrayIndexOutOfBoundsException
  • 检查目标字符串的长度大于0,避免调用charAt时出现StringIndexOutOfBoundsException

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:27:29