java - 在不使用任何 String 函数的情况下读取字符数组中的字符串,甚至不使用 Java 中的 charAt

标签 java c++ arrays string

我想在不使用任何 String 类函数的情况下读取 char 数组中的字符串,甚至不使用 Java 中的 charAt()、lenght()。我知道一种方法 char c=(char) System.in.read()。但是在这种情况下,即使输入单个字符,用户字符也会在命令行上写下整个句子。我希望用户能够输入一个字符,然后我可以对其进行一些操作,然后在同一行中输入下一个字符……(就像我们在 C++ 中所做的那样)。请给我一些建议。我想要一个类似于 C++ 的代码

// c++ code
char c, d[50];
cin.get(c); 
int i=0;
while(c != '\n')
{
    d[i++]=c;
    ...           //any expressions
    ...
    cin.get(c); 
}

最佳答案

一次处理一个字符没有简单的方法。

参见 SO thisthis .您可能会遇到一些令人头疼的问题,并且在特定操作系统上 没有来自 System.in 的数据,而是来自您自己的结构。如果您找到一种在每次击键时刷新 System.in 的方法,您的问题就解决了。据我所知,您无法从 Java 注册键盘 IRQ。

您的 no-String 要求是简单的部分,因为您可以使用与在 C++ 中相同的结构。问题在于 cin.get() 背后的机制,它在 Java 中没有类似物。

关于java - 在不使用任何 String 函数的情况下读取字符数组中的字符串,甚至不使用 Java 中的 charAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011735/

相关文章:

java - stage.setIconify(true) 不适用于未装饰的舞台

C++ scanf %la 返回 0

javascript - 减少函数额外括号的含义 - JS

arrays - 使用 Powershell "where"命令与值数组进行比较

java - 如何将 HashMap 转换为条目数组

java - 如果静态类被模拟出来,为什么 PowerMock 会尝试加载 server.xml 文件?

java - 将 bytes[] 更改为字符串

java - quartz : Dynamic job scheduling

c++ - 如何创建一个不能被其他类继承的类?

c++ - 什么是 cppia 脚本?