设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Java 程序设计开发讨论
›
一个JAVA小程序,请看看为何实现不了。
返回列表
查看:
1575
|
回复:
9
一个JAVA小程序,请看看为何实现不了。
[复制链接]
dengshiyou
dengshiyou
当前离线
积分
80
IP卡
狗仔卡
发表于 2005-12-8 19:47:08
|
显示全部楼层
|
阅读模式
import java.io.*;
public class showCharValue
{
public static void main(String arge[])
{
char ch;
try
{
System.out.println("请输入一个字符,以'#'结束");
do
{
ch = (char)System.in.read();
System.out.println("字符"+ch+"的整数值为"+(int)ch);
System.in.skip(2);
}while(ch!='#');
}
catch(IOException e)
{
System.err.println(e.toString());
}
}
}
为什么实现不了循环呢?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
cisco
cisco
当前离线
积分
88
IP卡
狗仔卡
发表于 2005-12-9 05:09:51
|
显示全部楼层
do while 循环一点问题没有,但是楼主要实现什么没看懂?
回复
支持
反对
使用道具
举报
显身卡
fangshun
fangshun
当前离线
积分
661
IP卡
狗仔卡
发表于 2005-12-9 08:58:44
|
显示全部楼层
我运行了,是在循环啊1!
回复
支持
反对
使用道具
举报
显身卡
dengshiyou
dengshiyou
当前离线
积分
80
IP卡
狗仔卡
楼主
|
发表于 2005-12-10 19:40:51
|
显示全部楼层
我的目的是接受用户输入的字符并输出其整型数值,以“#”表示程序的结束。
回复
支持
反对
使用道具
举报
显身卡
dengshiyou
dengshiyou
当前离线
积分
80
IP卡
狗仔卡
楼主
|
发表于 2005-12-10 19:46:14
|
显示全部楼层
Post by
fangshun
我运行了,是在循环啊1!
不知仁兄在何平台,我是在LINUX下,输入出一个字符后便出现:
[root@DYS ~]# java showCharValue
请输入一个字符,以'#'结束
a
字符a的整数值为97
java.io.IOException: éæ³ seek æä½
[root@DYS ~]# java showCharValue
请输入一个字符,以'#'结束
t
字符t的整数值为116
java.io.IOException: éæ³ seek æä½
[root@DYS ~]#
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
注册
x
回复
支持
反对
使用道具
举报
显身卡
ideawu
ideawu
当前离线
积分
1837
IP卡
狗仔卡
发表于 2005-12-10 22:44:11
|
显示全部楼层
没错啊。不过输入中文字符就有问题。楼主的console的locale是什么?
wuzuyang@debian:~$ java showCharValue
请输入一个字符,以'#'结束
123#
字符1的整数值为49
字符#的整数值为35
wuzuyang@debian:~$ java showCharValue
请输入一个字符,以'#'结束
在
字符å的整数值为229
字符
的整数值为10
java.io.IOException: Illegal seek
回复
支持
反对
使用道具
举报
显身卡
huabeirong
huabeirong
当前离线
积分
170
IP卡
狗仔卡
发表于 2005-12-10 23:05:02
|
显示全部楼层
没有什么报警,我是JDK1。5
请输入一个字符,以'#'结束
a
字符a的整数值为97
a#
字符a的整数值为97
a#
字符a的整数值为97
A
字符A的整数值为65
#
字符#的整数值为35
请输入一个字符,以'#'结束
我
字符?的整数值为206
爱
字符°的整数值为176
你
字符?的整数值为196
#
字符#的整数值为35
回复
支持
反对
使用道具
举报
显身卡
dengshiyou
dengshiyou
当前离线
积分
80
IP卡
狗仔卡
楼主
|
发表于 2005-12-10 23:11:02
|
显示全部楼层
"console的locale"小弟不知是什么意思。
也许我没表达清楚,我的目的是每次输入一个字符后输出该字符的整数值,接着又要求输入一个字符,又输出整数值,直到输入了“#”,则程序结束。
回复
支持
反对
使用道具
举报
显身卡
cisco
cisco
当前离线
积分
88
IP卡
狗仔卡
发表于 2005-12-11 17:30:46
|
显示全部楼层
避免直接用System.in.read(); 这样用是字节,例如输入“我”就显示半个字符,Java核心的字符是基于UNICODE:
import java.io.*;
public class CharToInt {
public static void main(String[] args) throws IOException {
int input;
BufferedReader stdin;
System.out.println("请输入一个字符,以'#'结束");
do {
stdin = new BufferedReader(new InputStreamReader(System.in));
input = stdin.read();
System.out.println("字符" + (char) input + "的整数值为" + input);
} while ((char) input != '#');
}
}
复制代码
不知道unicode请参考:
Java中文处理学习笔记——Hello Unicode
http://www.chedong.com/tech/hello_unicode.html
回复
支持
反对
使用道具
举报
显身卡
dengshiyou
dengshiyou
当前离线
积分
80
IP卡
狗仔卡
楼主
|
发表于 2005-12-11 21:01:09
|
显示全部楼层
我再试了试,也许其它方面有问题,但我找到了主要的问题, System.in.skip(2);此句,我注释掉之后就没问题了.可以循环了。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表