控制台输入不换行

ldf_power 2011-04-23 06:25:52
大侠们帮帮忙,如何控制用户输入数值在同一行而不能换行呢?谢谢啊!
...全文
1316 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenbodong 2011-04-25
  • 打赏
  • 举报
回复
显然楼主的意思就是光标不能换行嘛。
其实我在11楼已经说了,要想不换行,就要调用像C语言标准库中的getch这种函数,当然,直接调用Windows相关API也可以。一句话,用Java的本地C或C++调用实现
lliiqiang 2011-04-25
  • 打赏
  • 举报
回复
判断里面有没有换行符就可以了
wenbodong 2011-04-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 kai27ks 的回复:]
Java code
package csdn;

import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Pattern;

public class SystemInDemo {
public void InputConsole() {
StringBuff……
[/Quote]
楼上大哥,你的例子你试过没?我在控制台下试,按下回车键,光标是会换行滴。
kai27ks 2011-04-24
  • 打赏
  • 举报
回复
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停止输入了?
kai27ks 2011-04-24
  • 打赏
  • 举报
回复
我的那个代码不行。抱歉,我没去试过。JAVA中默认回车就是换行。System.in中 回车就是让它读一行。你的这个。。 没想到什么方法可以实现
kai27ks 2011-04-24
  • 打赏
  • 举报
回复
光标换行是肯定的啊。。。 但是不会输出了啊。。所以这是个未完成品。你非要那么做。我得去看下源码才能解决我估计。。
nacl 2011-04-23
  • 打赏
  • 举报
回复
5楼的意思应该就是说读取用户输入,如果输入的是enter就转换为null再输出吧。
hepeng_8 2011-04-23
  • 打赏
  • 举报
回复
out。ptintln()你把后面的那个ln去掉试试
wenbodong 2011-04-23
  • 打赏
  • 举报
回复
如果是使用VC++编写程序的话,有一个函数:getch(),这个函数也是读取键盘操作,但是不回显。就是说,执行getch()时,它会读取键盘操作,并且返回读取的值。但是屏幕上不会有任何的回显。而显示的操作,就完全由程序员自己控制了。Java中,我没见过这种库函数。
所以,如果你非要实现这个功能,可以使用Java的本地调用功能实现。
wenbodong 2011-04-23
  • 打赏
  • 举报
回复
楼主,你想在输入时按Enter键无效,是吧?
其实呢,只有在你调用读取键盘的函数的时候,你在控制台的按键操作才会显示在屏幕上面。如果你按C,会显示一个C。如果你按Enter,则会换行。显示你输入的字符,这个事情,其实就是你调用的读取键盘操作的函数实现的。Java提供给你的库函数中,我没见过不响应Enter键的。所以如果你只是调用JavaAPI的话,貌似不可避免地换行。
Jeelon 2011-04-23
  • 打赏
  • 举报
回复
如果是打印的话 不要println() 不要ln
如果是从键盘读取 ReadLine() 不要Line 这个问题楼上也有说的

你自己思考思考
chamlin1 2011-04-23
  • 打赏
  • 举报
回复
不太懂
zhang22335566 2011-04-23
  • 打赏
  • 举报
回复
看看书吧,书里都有!
java爱好者 2011-04-23
  • 打赏
  • 举报
回复
不明白lz的意思
ldf_power 2011-04-23
  • 打赏
  • 举报
回复
不好意思上面代码什么意思啊?粘了改了很多问题啊,麻烦您说句话吧
kai27ks 2011-04-23
  • 打赏
  • 举报
回复
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();
}
ldf_power 2011-04-23
  • 打赏
  • 举报
回复
请教您怎么在输入时回车无效呢?Java中
安心逍遥 2011-04-23
  • 打赏
  • 举报
回复
让让回车键无效啊
ldf_power 2011-04-23
  • 打赏
  • 举报
回复
谢谢您,我想知道的是用户输入时不允许他换行,怎么在程序中控制啊?
gentleboy2009 2011-04-23
  • 打赏
  • 举报
回复
那就不按enter就行了啊。。。用空格代替!~~~

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧