我想在不使用任何 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 this和 this .您可能会遇到一些令人头疼的问题,并且在特定操作系统上 没有来自 System.in
的数据,而是来自您自己的结构。如果您找到一种在每次击键时刷新 System.in
的方法,您的问题就解决了。据我所知,您无法从 Java 注册键盘 IRQ。
您的 no-String
要求是简单的部分,因为您可以使用与在 C++ 中相同的结构。问题在于 cin.get()
背后的机制,它在 Java 中没有类似物。
关于java - 在不使用任何 String 函数的情况下读取字符数组中的字符串,甚至不使用 Java 中的 charAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011735/