控制台输入不换行 大侠们帮帮忙,如何控制用户输入数值在同一行而不能换行呢?谢谢啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就不按enter就行了啊用空格代替!~~~ 请教您怎么在输入时回车无效呢?Java中 StringBuffer a; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { while(char c=br.read()!=-1){ if(c==13) c==null; System.print(c);} } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 如果是打印的话 不要println() 不要ln如果是从键盘读取 ReadLine() 不要Line 这个问题楼上也有说的 你自己思考思考 楼主,你想在输入时按Enter键无效,是吧?其实呢,只有在你调用读取键盘的函数的时候,你在控制台的按键操作才会显示在屏幕上面。如果你按C,会显示一个C。如果你按Enter,则会换行。显示你输入的字符,这个事情,其实就是你调用的读取键盘操作的函数实现的。Java提供给你的库函数中,我没见过不响应Enter键的。所以如果你只是调用JavaAPI的话,貌似不可避免地换行。 如果是使用VC++编写程序的话,有一个函数:getch(),这个函数也是读取键盘操作,但是不回显。就是说,执行getch()时,它会读取键盘操作,并且返回读取的值。但是屏幕上不会有任何的回显。而显示的操作,就完全由程序员自己控制了。Java中,我没见过这种库函数。所以,如果你非要实现这个功能,可以使用Java的本地调用功能实现。 out。ptintln()你把后面的那个ln去掉试试 5楼的意思应该就是说读取用户输入,如果输入的是enter就转换为null再输出吧。 我的那个代码不行。抱歉,我没去试过。JAVA中默认回车就是换行。System.in中 回车就是让它读一行。你的这个。。 没想到什么方法可以实现 package csdn;import java.io.IOException;import java.util.Scanner;import java.util.regex.Pattern;public class SystemInDemo { public void InputConsole() { StringBuffer a; char c; System.out.println("开始输入,按ESC结束,回车无效"); Scanner sc =new Scanner(System.in); sc.skip(Pattern.compile("\r")); while(sc.hasNext()){ System.out.println(sc.next()); } } public static void main(String args[]){ new SystemInDemo().InputConsole(); }}现在取消了回车的作用 但是不知道如何让它判断为esc停止输入了? 显然楼主的意思就是光标不能换行嘛。其实我在11楼已经说了,要想不换行,就要调用像C语言标准库中的getch这种函数,当然,直接调用Windows相关API也可以。一句话,用Java的本地C或C++调用实现 JAVA多线程效率 关于print问题 菜鸟编的练练看 请大虾帮忙(2) 求助:JFrame中的setSize、setVisible的顺序问题 重大发现,怎么老是空指针呢?呵呵 怎样遍历ArrayList拿里面的数据? 求大神指导 本人写的一个小程序 出了点问题 找不到原因 怎么在Fram窗体中怎样划线 rs.next()的问题 导入项目,出现如图所示错误The import org.jvnet cannot be resolved java 如何打开一个网站得到该网站的Url编码格式 Help needed: Java ssh2 shell commands automation
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try
{
while(char c=br.read()!=-1){
if(c==13)
c==null;
System.print(c);
}
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
如果是从键盘读取 ReadLine() 不要Line 这个问题楼上也有说的 你自己思考思考
其实呢,只有在你调用读取键盘的函数的时候,你在控制台的按键操作才会显示在屏幕上面。如果你按C,会显示一个C。如果你按Enter,则会换行。显示你输入的字符,这个事情,其实就是你调用的读取键盘操作的函数实现的。Java提供给你的库函数中,我没见过不响应Enter键的。所以如果你只是调用JavaAPI的话,貌似不可避免地换行。
所以,如果你非要实现这个功能,可以使用Java的本地调用功能实现。
import java.util.Scanner;
import java.util.regex.Pattern;public class SystemInDemo {
public void InputConsole() {
StringBuffer a;
char c;
System.out.println("开始输入,按ESC结束,回车无效");
Scanner sc =new Scanner(System.in);
sc.skip(Pattern.compile("\r"));
while(sc.hasNext()){
System.out.println(sc.next());
} }
public static void main(String args[]){
new SystemInDemo().InputConsole();
}}现在取消了回车的作用 但是不知道如何让它判断为esc停止输入了?
其实我在11楼已经说了,要想不换行,就要调用像C语言标准库中的getch这种函数,当然,直接调用Windows相关API也可以。一句话,用Java的本地C或C++调用实现