gpt4 book ai didi

java - 如何从单词中删除元音并打印出来?

转载 作者:搜寻专家 更新时间:2023-11-01 02:41:03 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,要求某人输入一个单词,然后该程序会删除该单词中的所有元音并打印剩余的辅音。这是我到目前为止所拥有的:

package r7;

import java.util.Scanner;

public class Disemvowel {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
System.out.println("Please enter a word");
String word = stdin.next();
String disemvowlmentWord = "";
int len = word.length();

for (int i=0; i<len; i++) {
char c = word.charAt(i);
if (c != 'a' | c != 'e' | c != 'i' | c != 'o' | c != 'u')
disemvowlmentWord = disemvowlmentWord + c;
}
System.out.println(disemvowlmentWord);
}
}

当我运行它时,它只会重新打印我输入的任何单词。

最佳答案

您使用了按位或(但每个元音都不是任何其他元音),我认为您想要一个逻辑与。这个

if (c != 'a' | c != 'e' | c != 'i' | c != 'o' | c != 'u')

应该是这样的

if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u')

你也可以使用 for-each loop我更喜欢 StringBuilder创建多个不可变的 String(s)。类似的东西,

StringBuilder sb = new StringBuilder();
for (char c : word.toCharArray()) {
if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u') {
sb.append(c);
}
}
System.out.println(sb);

最后,上面的测试也可以这样表达(因为 De Morgan's laws )

if (!(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'))

您可以使用正则表达式将元音替换为空String。类似的东西,

System.out.println(word.replaceAll("[a|e|i|o|u]", ""));

关于java - 如何从单词中删除元音并打印出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33115517/

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