循环遍历字符串数组,并删除元音 'a' (java)
Loop through an array of strings, and remove the vowel 'a' (java)
作为 java 初学者,我正在尝试完成一个简单的练习,从字符串数组的每个元素中删除字符 'a' 的所有实例,然后打印所有元素。
下面的代码,简单地输出数组不变(仍然包含一个)。
我相信我已经找到了实现它的替代方法,但我仍然不明白为什么下面的失败,出于学习目的我想知道。如有任何建议,我们将不胜感激。
public static void main(String[] args) {
String instruments[] = {"cello", "guitar", "violin", "double bass"};
for (int i = 0; i < instruments.length; i++) {
String str = instruments[i];
for (int b = 0; b < str.length(); b++) {
char a = str.charAt(b);
if (str.charAt(b) == 'a') {
str.replace("a", "");
}
}
System.out.println(str);
}
}
String.replace
returns 新字符串。在上面的代码片段中,从未使用 return 值。尝试这样的事情:
instruments[i] = str.replace("a", "");
也不需要检查字符串str
是否包含'a',只要做一个replace
因为如果针('a')是什么都不做没有找到,正如您所期望的那样。这反过来又使内环多余并且可以被移除。最后你会得到这样的东西:
for (int i = 0; i < instruments.length; i++) {
instruments[i] = instruments[i].replace("a", "");
}
解决方法如下:
请记住:字符串对象是不可变的!
public static void main(String[] args) {
String instruments[] = {"cello", "guitar", "violin", "double bass"};
for (int i = 0; i < instruments.length; i++) {
instruments[i] = instruments[i].replace("a", "");
System.out.println(instruments[i]);
}
}
作为 java 初学者,我正在尝试完成一个简单的练习,从字符串数组的每个元素中删除字符 'a' 的所有实例,然后打印所有元素。
下面的代码,简单地输出数组不变(仍然包含一个)。
我相信我已经找到了实现它的替代方法,但我仍然不明白为什么下面的失败,出于学习目的我想知道。如有任何建议,我们将不胜感激。
public static void main(String[] args) {
String instruments[] = {"cello", "guitar", "violin", "double bass"};
for (int i = 0; i < instruments.length; i++) {
String str = instruments[i];
for (int b = 0; b < str.length(); b++) {
char a = str.charAt(b);
if (str.charAt(b) == 'a') {
str.replace("a", "");
}
}
System.out.println(str);
}
}
String.replace
returns 新字符串。在上面的代码片段中,从未使用 return 值。尝试这样的事情:
instruments[i] = str.replace("a", "");
也不需要检查字符串str
是否包含'a',只要做一个replace
因为如果针('a')是什么都不做没有找到,正如您所期望的那样。这反过来又使内环多余并且可以被移除。最后你会得到这样的东西:
for (int i = 0; i < instruments.length; i++) {
instruments[i] = instruments[i].replace("a", "");
}
解决方法如下: 请记住:字符串对象是不可变的!
public static void main(String[] args) {
String instruments[] = {"cello", "guitar", "violin", "double bass"};
for (int i = 0; i < instruments.length; i++) {
instruments[i] = instruments[i].replace("a", "");
System.out.println(instruments[i]);
}
}