黑马程序员技术交流社区
标题:
Eclipse控制台输入数据后光标直接回到行首不跳到下一行
[打印本页]
作者:
龙行无忌
时间:
2015-2-8 13:05
标题:
Eclipse控制台输入数据后光标直接回到行首不跳到下一行
在做入学测试的第10题,编写了可以从键盘接收输入的数据,但是发现Eclipse控制台在接受输入数据后光标不跳到下一行,而是需要用鼠标点击到下一行。在DOS环境下运行则没有这个问题,求解,Eclipse需要怎么设置才能解决这个问题?
import java.util.Scanner;
/**
* 10.编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),
* 例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文
*/
public class Test10 {
/**
* @param args
*/
public static String bSubstring(String s, int length) throws Exception {
byte[] bytes = s.getBytes("Unicode");
int n = 0; // 表示当前的字节数
int i = 2; // 要截取的字节数,从第3个字节开始
for (; i < bytes.length && n < length; i++) {
// 奇数位置,如3、5、7等,为UCS2编码中两个字节的第二个字节
if (i % 2 == 1) {
n++; // 在UCS2第二个字节时n加1
} else {
// 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节
if (bytes[i] != 0) {
n++;
}
}
}
// 如果i为奇数时,处理成偶数
if (i % 2 == 1) {
// 该UCS2字符是汉字时,去掉这个截一半的汉字
if (bytes[i - 1] != 0)
i = i - 1;
// 该UCS2字符是字母或数字,则保留该字符
else
i = i + 1;
}
return new String(bytes, 0, i, "Unicode");
}
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);//从键盘接收输入数据
System.out.println("请输入字符串:");
String str = scan.next(); //取出接收的字符
int i = 0;
System.out.println("请输入截取字符的位置:");
if(scan.hasNextInt()){//如果输入的是整数
i = scan.nextInt();
System.out.println(Test10.bSubstring(str, i));
}else{
System.out.println("输入的不是整数。");
}
}
}
复制代码
作者:
Gonnaloveu
时间:
2015-2-8 14:37
你的意思是刚刚运行后控制台下面这样么?
(光标位置)请输入字符串:
我用的是Myeclipse如果是这样的话不用鼠标点,你输入英文和数字它自动就在下一行了,中文有时候不行但大部分也能自动下去..
作者:
万合天宜
时间:
2015-2-8 14:54
Eclipse控制台的光标是没有换行功能的,输入数据的时候只能自己一个一个慢慢移动光标。我以前专门百度过,现在还没有解决方法。
作者:
寡欲多乐
时间:
2016-10-22 19:06
刚才在写代码时我也发现了这个问题,不过,现在是2016年10月了,这个问题还没解决吗?
作者:
qq977633983
时间:
2016-10-24 02:59
居然都还没有解决啊
作者:
hu1360326757
时间:
2018-1-20 17:23
2018年1月20日 17:22:47------------还未解决
作者:
黄惠彬
时间:
2018-1-31 10:46
万合天宜 发表于 2015-2-8 14:54
Eclipse控制台的光标是没有换行功能的,输入数据的时候只能自己一个一个慢慢移动光标。我以前专门百度过, ...
shift+enter
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2