0
点赞
收藏
分享

微信扫一扫

刷Letcode 当中遇到的java.lang.StringIndexOutOfBoundsException: String index out of range: 13 at line 48

自由情感小屋 2022-04-13 阅读 81
java

在这里插入图片描述
当这个问题出现的时候,我自己都懵了,到底是哪里出错了,下面来给大家看看出错的代码:

class Solution {
    public String replaceSpace(String s) {
        int length=s.length()*3;
        char[] str=new char[length];
        int size=0;
        for(int i=0;i<length;i++){
            char c=s.charAt(i);
            if(c==' '){//这里不能执行的就是s.charAt[i]=='',因为这样会引发的就是
                str[size++]='%';
                str[size++]='2';
                str[size++]='0';
            }
            else{
                str[size++]=c;
            }
        }
        String newstr=new String(str,0,size);
        return newstr; 
    }
}

这道题目是根据判断字符串中是否有对应的空格,如果有的话,就将这个空格转化成为%,如果没有的话,就直接返回对应的字符,这里面用到比较重要的就是s.charAt(i),在这里面,你需要做的就是根据判断s.charAt(i)来和空格进行比较。
新代码:

class Solution {
    public String replaceSpace(String s) {
        int length=s.length();
        char[] str=new char[length*3];
        int size=0;
        for(int i=0;i<length;i++){
            char c=s.charAt(i);
            if(c==' '){//这里不能执行的就是s.charAt[i]=='',因为这样会引发的就是
                str[size++]='%';
                str[size++]='2';
                str[size++]='0';
            }
            else{
                str[size++]=c;
            }
        }
        String newstr=new String(str,0,size);
        return newstr; 
    }
}

结果:
在这里插入图片描述

关键
这个就是对应的s.length()不要乘3,这样会造成很大的麻烦。

举报

相关推荐

0 条评论