22软工冷薄 2023-10-25 20:31 采纳率: 66.7%
浏览 4
已结题

JAVA将首字母大写要-数组越界问题

img


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        while (n-- > 0) {
            while (sc.hasNextLine()) {
                StringBuffer SB = new StringBuffer();
                String temp = sc.nextLine();
                String arrys[] = temp.split(" ");
                for (int i = 0; i < arrys.length; i++) {
                    char[] chars = arrys[i].toCharArray();//将string转型成char

                    for (int k = 0; k < chars.length; k++) {//这里我一开始写的k<1,想让他就判断第一个首字母
                        if (chars[k] >= 'a' && chars[k] <= 'z') {//这也是改成全部遍历才加的判断,之前没有
                            if(k==0){
                                chars[k] = Character.toUpperCase(chars[k]);
                                SB.append(chars[k]);
                            }


                        }else if(chars[k]>='A'&&chars[k]<='Z'){
                            if(k==0){
                                SB.append(chars[k]);
                            }

                        }
                    }

                }
                System.out.println(SB);

            }

        }
    }


}

如果将for循环判断改成k<1为什么编译错误数组越界呢,内层for循环也就一个数啊

  • 写回答

2条回答 默认 最新

  • micthis 2023-10-25 20:57
    关注

    如果chars数组的长度是0,写成k<1就会访问chars[0]造成数组越界。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 修改了问题 10月25日
  • 修改了问题 10月25日
  • 展开全部

悬赏问题

  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。