gpt4 book ai didi

java - 用 '%20' 替换空格时出现数组索引越界异常

转载 作者:行者123 更新时间:2023-11-30 02:51:09 26 4
gpt4 key购买 nike

我的代码遇到问题。当我运行程序时,它显示数组索引越界异常。请建议代码中的错误是什么。

package replacespace;

import java.util.Scanner;



public class ReplaceSpace {

/*public int calLength(char par1[]){
int count=0;
for(char c:par1){
count++;
}
return(count);
}*/

/**
*
* @param args
*/
public void replaceSpace(char str[], int length){
char[] newArray= new char[length+1];
newArray[length+1]='\0';
int position=0;
for(int i=0;i<length;i++){
if(str[i]==' '){
length=length+2;
newArray[position]='%';
newArray[position+1]='2';
newArray[position+2]='0';
position=position+3;

}
else{
newArray[position]=str[i];
position++;
}
}
String s=new String(newArray);
System.out.println(s);
}

public static void main(String[] args) {
ReplaceSpace rs= new ReplaceSpace();
String s1,sCopy;

int length;
Scanner scan= new Scanner(System.in);
System.out.println("Please enter any string");
s1=scan.nextLine();
length=s1.length();
char stringArr[]=new char[length];
stringArr =s1.toCharArray();

//length=rs.calLength(stringArr);

rs.replaceSpace(stringArr,stringArr.length);
}

}

此代码假设用“%20”替换字符串中的空格。

最佳答案

for(int j=var1;j<=length;j++){
stringArr1[j]= '%';
stringArr1[j+1]='2';
stringArr1[i+2]='0';
stringArr1[j+3]=array[i+1];
}

此代码将一直运行,直到 j 等于长度。你不能有[j+3]之前迭代(或迭代)的索引。

更改您的 j<=lengthj<=(length-3) (或类似)

但我的建议:使用字符串 replacereplaceAll方法

关于java - 用 '%20' 替换空格时出现数组索引越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38612988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com