使用子字符串删除空格
Remove spaces using substring
我有这个:
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
,我不明白为什么。为什么?
您需要 ==
进行比较,而 =
是替换运算符。
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;
}
您遇到了 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;
}
在 Java 中删除字符串中空格的更好方法是
str = str.replace(" ","");
但是如果你想要类似于你的代码的东西,试试下面的,我想 substring 不需要我们可以使用 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();
}
我有这个:
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
,我不明白为什么。为什么?
您需要 ==
进行比较,而 =
是替换运算符。
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;
}
您遇到了 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;
}
在 Java 中删除字符串中空格的更好方法是
str = str.replace(" ","");
但是如果你想要类似于你的代码的东西,试试下面的,我想 substring 不需要我们可以使用 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();
}