我有這個:
private String remove_spaces(String s){
s = s.trim();
String updated = "";
for (int i = 0; i < s.length(); i ) {
String tester = s.substring(i, i 1);
String space = " ";
boolean isSpace = tester.equals(space);
if (isSpace = false)
updated = tester;
}
return updated;
}
它拋出一個StringIndexOutOfBounds,我不明白為什么。為什么?
uj5u.com熱心網友回復:
您需要==在=是替換運算子時進行比較。
if (isSpace == false)
此外,您可以使用!(=not) 來縮短您的代碼,如下所示:
private String remove_spaces(String s) {
s = s.trim();
String updated = "";
for (int i = 0; i < s.length(); i ) {
String tester = s.substring(i, i 1);
if (!tester.equals(" ")) {
updated = tester;
}
}
return updated;
}
uj5u.com熱心網友回復:
你有index out of bounds錯誤,因為你試圖達到一個大于陣列實際長度的索引
String tester = s.substring(i,i 1);
我建議使用這樣的 if 子句
private String remove_spaces(String s) {
s = s.trim();
String updated = "";
String tester = "";
for (int i = 0; i < s.length(); i ) {
if (i != s.length-1) {
tester = s.substring(i, i 1);
}else{
tester = s.substring(i);
}
if (!tester.equals(" ")) {
updated = tester;
}
}
return updated;
}
uj5u.com熱心網友回復:
在 Java 中洗掉字串中空格的更好方法是
str = str.replace(" ","");
但是如果你想要類似于你的代碼的東西,試試下面的一個,我想不需要子字串我們可以使用charAt。
private static String remove_spaces(String s) {
s = s.trim();
StringBuilder updated = new StringBuilder();
for (int i = 0; i < s.length(); i ) {
Character tester = s.charAt(i);
if (!tester.equals(' ')) {
updated.append(tester);
}
}
return updated.toString();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/310994.html
上一篇:運算式的非法開始:Java方法
