Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中如何省略单词或句子中的元音?_Java_Arrays - Fatal编程技术网

在java中如何省略单词或句子中的元音?

在java中如何省略单词或句子中的元音?,java,arrays,Java,Arrays,不知何故,我无法运行我的程序。我希望你们能帮我。我是编程的初学者 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: ");

不知何故,我无法运行我的程序。我希望你们能帮我。我是编程的初学者

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);
        }
    }
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
公开课考试{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.print(“输入单词:”);
字符串输入=scan.next();
String[]strArray=新字符串[input.length()];
字符串ch=“”,out=“”;
对于(int i=0;i

非常感谢!:)

使用字符串的
replaceAll()
方法
replaceAll(“[aaeeiiouuuyy]”,“)
将删除这些字母。

由于您是初学者,我将给出一些额外的解释和建议,希望对您有所帮助

1) 至于您的主要问题,错误表明文件名是错误的。在Java中,包含代码的文件的名称应该与您声明的公共类的名称相同(必须,不像c++)。。因此,您应该将文件命名为Test.java,并且您的类声明是:public class Test{…}

2) 您的代码在逻辑上运行良好,但这不是最好的方法。正如jsheeran所回答的,使用正则表达式比实现for循环要好得多。看见 有关正则表达式的介绍。如果你不明白,没关系。简单地说,使用replaceAll函数

3) 需要注意的是,无论何时处理Java中的I/O类(如Scanner),都应该关闭流源,否则可能导致内存泄漏。因此,在代码末尾添加:

scan.close();
4) 最后,不要导入您不需要的类。这不会造成任何问题,但为什么要导入它们呢。因此,删除:

import java.lang.*;
import java.io.*;
顺便说一下,java.lang是自动导入的,因此您永远不需要导入它


5) 最后一个提示是,如果您是初学者,并且有时间学习,那么不要只使用internet上的教程,而是阅读一本好的易于阅读的java书籍。我会推荐“头一版java,第二版”。此外,视频教程可能比阅读教程更适合您。

效果很好……您有什么问题吗?实际上,我的问题是我无法运行它。但不知何故,我确信我做得对。如果你能谈谈这个问题,那会很有帮助的。这是一个编译时错误、运行时错误还是您的代码执行正常但有意外的输出?每当我编译它时,它都会告诉我:Main.java:5:error:class Test是公共的,应该在名为Test.java的文件中声明。java public class Test{^1 error“class Test是公共的,应该在名为Test.java的文件中声明”有什么不清楚的?文件名与类名匹配吗?@NOOBProgrammer:请接受这个答案。这是一个很好的做法。尽管tge other答案有更多的投票权(并且包含一个有效的好建议),但这个答案更适用于您的实际问题