不知怎的,我无法运行我的程序。我希望你能帮助我。我是编程的初学者。
import java.util.*;
import java.lang.*;
import java.io.*;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a Word: ");
String input = scan.next();
String[] strArray = new String[input.length()];
String ch = "", out = "";
for (int i = 0; i < input.length(); i++) {
strArray[i] = input.charAt(i) + "";
}
for (int i = 0; i < input.length(); i++) {
ch = strArray[i];
out = (ch.equalsIgnoreCase("A")) ? "" // "?" = if
: (ch.equalsIgnoreCase("E")) ? "" // ":" = else
: (ch.equalsIgnoreCase("I")) ? ""
: (ch.equalsIgnoreCase("O")) ? ""
: (ch.equalsIgnoreCase("u")) ? "" : ch;
System.out.print(out);
}
}
}
非常感谢! :)
答案 0 :(得分:4)
使用String的replaceAll()
方法。 replaceAll("[AaEeIiOoUuYy]", "")
会删除这些字母。
答案 1 :(得分:1)
由于您是初学者,我将提供一些额外的解释和建议,希望对您有所帮助。
1)至于你的主要问题,错误说明文件的名称是错误的。在Java中,包含代码的文件的名称应该与您声明的公共类的名称相同(必须,而不是像c ++)..所以你应该将你的文件命名为Test.java,你的类声明是:public class Test {...}
2)你的代码作为逻辑工作正常,但它不是最好的方法。正如jsheeran所回答的,使用称为正则表达式的东西比实现for循环要好得多。见http://www.vogella.com/tutorials/JavaRegularExpressions/article.html 关于正则表达式的介绍。如果你不理解它,那就行了。只需采用一般的想法并使用replaceAll函数。
3)与您提到的问题无关的一个注意事项是,无论何时处理Java中的I / O类(如Scanner),都应该关闭Streaming源,否则,这可能会导致内存泄漏。所以在代码的末尾添加:
scan.close();
4)最后,不要导入你不需要的课程。它不会造成任何问题,但为什么要导入它们。所以,删除:
import java.lang.*;
import java.io.*;
顺便说一下,java.lang会自动导入,所以你永远不需要导入它。
5)最后一个提示,如果你是一个初学者,你有时间学习,不要只使用互联网上的教程,而是阅读一本易于阅读的好书。我会推荐&#34;首先是java,第2版&#34;。此外,视频教程可能比阅读教程更好。