繁体   English   中英

如何在不使用 Java 中的数组或字符串的情况下读取 output 字符?

[英]How to read and output characters without using Array or String in Java?

我应该使用System.in.read()读取用户输入,将其保存到charint变量中,然后 output 以相反的顺序保存用户输入。 只要用户没有输入"#" ,我就应该阅读输入

你有一些想法如何做到这一点? 示例代码:

public static void main(String[] args) {
        int inChar;
        System.out.println("Input:");
        try {
            inChar = System.in.read();
            System.out.print("Output: ");
            System.out.println(inChar); // I only get numbers here
        } catch (IOException e) {
            System.out.println("Error reading from user");
        }
    }

这个任务有两个问题。

如何在按下“#”之前读取用户输入以及如何反转 char 数组(字符串)。

看一下这个

 public static void main(String[] args) throws IOException {
        String chars = "";
        char inChar = 0;
        System.out.println("Enter Character and press Enter: ");

        while (inChar!='#') {
            inChar = (char)System.in.read();
            if (inChar=='\n'){
                continue;
            }
            chars += inChar;
        }
        System.out.println("Input: " + chars);
        System.out.print("Output: ");
        for (int i=chars.length()-2; i>=0; i--){
            System.out.print(chars.charAt(i));
        }
    }

编辑:谢谢@DevilsHnd。 使用 System.in.read() 代替 Scanner 更新代码。

在 while 循环中,代码读取用户输入,直到按下“#”键。 Java 无法读取按键,除非您使用 GUI(swing、awt)或 JNI C++ 库。 因此,当按下 Enter 时,代码会读取用户输入。

如果用户输入 # 则循环中断。 对于所有其他字符,该字符将添加到最终字符串中。 由于 System.in.read() 还读取新行 (\n),因此代码不会将它们添加到最终字符串中。

对于第二个问题,代码迭代了最终字符串的长度,并从最后一个字符开始打印字符。
请注意,迭代从 position 长度为 2 的字符开始,这是因为字符串的最后一个字符是“#”,因此不应在 output 处打印。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM