У меня возникли проблемы с моим кодом. поскольку я запускаю программу, он отображает индекс массива из связанного исключения. Пожалуйста, укажите, какие ошибки в коде.Индекс массива из связанного исключения для замены пространства «% 20»
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».
'string.replace (»», "% 20")'? –
Этот код очень запутан. Не используйте имена, такие как array, и StringArr1, s1 и т. Д. Для ваших переменных. Дает имена вещей, которые говорят, что они. Видите ли, этот код просто написан таким сложным образом, что понимание его намерения ... похоже на важную задачу. Серьезно: сосредоточьтесь на написании кода, который легко читать. Вы знаете: когда ваш код легко читается, вам также будет намного легче найти ошибки в вашем коде. Как стартер, вы можете посмотреть в «CleanCode» Роберта Мартина. – GhostCat
Почему удивительно, что вы получаете 'ArrayIndexOutOfBoundsException'? Вы увеличиваете значение целочисленной 'length', но это не увеличивает фактическую длину' stringArr1', а затем вы пытаетесь пройти до конца конца массива ('length = length + 2' и looping до 'j <= length', индексирование на' j + 3') – jonhopkins