【问题标题】:How to read and output characters without using Array or String in Java?如何在不使用 Java 中的数组或字符串的情况下读取和输出字符?
【发布时间】:2019-10-08 07:00:18
【问题描述】:

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

,我就应该阅读输入

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

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");
        }
    }

【问题讨论】:

  • 也许一会儿循环能帮上忙?
  • 你有没有告诉你的同事“挑战接受了,我会让 StackOverflow 上的人解决这个问题”?
  • 当输出看起来像这样时我应该怎么做:输入:a b c # 输出:cba 如何将 int 转换为 String?
  • @Kayaman 我在大学里遇到了挑战,而不是我的同事。对不起...:D
  • @maxir200 你不需要在这里为作业撒谎。在家庭作业方面寻求帮助是完全可以接受的,但我们不能你的家庭作业,因为那太傻了。

标签: java arrays string


【解决方案1】:

这个任务有两个问题。

在按下“#”之前如何读取用户输入以及如何反转 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 循环中,代码读取用户输入,直到按下“#”键。除非您使用 GUI(swing、awt)或 JNI C++ 库,否则 Java 无法读取按键。因此,当按下 Enter 时,代码会读取用户输入。

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

对于第二个问题,代码迭代的次数等于最终字符串的长度,并打印从最后一个字符开始的字符。
请注意,迭代从位置长度为 2 的字符开始,这是因为字符串的最后一个字符是 '#',因此不应在输出中打印。

【讨论】:

  • 我以为 OP 说他不应该使用 String 或数组。
  • @DodgyCodeException OP 说将输入存储在 char 或 int 中,没有说不使用 Objects 或 Arrays。 倒序适用于2个或更多字符的集合,如果不使用包含多个字符的数据类型或对象,则无法解决问题。
猜你喜欢
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 2016-01-27
  • 2019-08-31
相关资源
最近更新 更多