菜鸟求助问题:如何获得从键盘输入的字符?

Hanana168 2005-12-02 12:40:58
编写—个java application程序,使用字符界面从键盘输入一个字符,
然后复制三次在一行输出。
...全文
1830 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
niko7 2005-12-02
  • 打赏
  • 举报
回复
InputStream is = System.in;
然后从 is 中读入。

上次好像也是你啊,完整代码都给你了,怎么又来问?
yanjieqing 2005-12-02
  • 打赏
  • 举报
回复
哇,我晕晕乎乎的了~~~还好看得懂,呵呵,我也正在自学中~~~
请问,大师,关于EJB的开发问题请讲解下行吗???
liukang520236 2005-12-02
  • 打赏
  • 举报
回复
楼上的太高了,这样会吓坏初学者的!!

建议楼主线看些比较基础的书啊。

记得以前问我怎么学java,我说过每天写三百行代码,看书没有用的事情。

如果是我害了你实在不好意思啊。

我这样说是有前提的,就是最最基础的都知道的情况下。


glnpu_dd 2005-12-02
  • 打赏
  • 举报
回复
import java.io.*;
import java.lang.*;

public class A14_HelloJava
{
/**
* main処理
*/
public static void main(String[] args)
{
System.out.println("请输入:");
/* 调用 方法 input() 来获得输入*/
String inputData = input();

/* 用StringBuffer来进行连接,在class的前面需要import java.lang.*包 */
StringBuffer stream = new StringBuffer();

/*
* 3次连接
*/
for(int num = 0; num <3; num++)
{
/*用append方法,搂主可以查一下资料,很有用的~~*/
stream.append(inputData);
}
String str;
str = stream.toString();

System.out.println(""+str);
}

/*
* 函数的功能就是获得从键盘输入的数据
* @return 输入的数据
*/
private static String input()
{
BufferedReader cinBuff = new BufferedReader(new InputStreamReader(System.in));

/*
* try -catch 方法是java的程序入门,在从键盘输入的过程中如果有异常发生,则被
*/catch给捕捉,然后抛出异常,呵呵,java的魅力~~
try
{
return cinBuff.readLine();
}
catch (IOException e)
{
System.out.println("IOException Error 发生!!");
return "";
}
}
}

好半天写了程序,一起努力,呵呵
niko7 2005-12-02
  • 打赏
  • 举报
回复
import java.io.*;//这里引入 输入/输出 相关的类库

public class Demo
{
public static void main(String args[]) //这是java application的入口,必须
{
InputStream is = System.in; //InputStream是输入流,这里指向System.in,暂时可以理解成键盘
//^ 之前的报错是因为之前没有 import java.io.*;(java.io.InputSteam)
try //因为 is.read() 可能会抛出例外,所以需要捕获
{
int c = is.read();//从键盘得到一个字符,但是这里需要按了回车之后才能真正获得
System.out.println( "" + (char)c + (char) c + (char) c); //输出三遍
//补充: c 本来是 int 型的,这里用 (char)强制转换成 char 型
//""用于把char转换成String,只有这样才能得到三个重复字符的效果,编译之后你自己改改试试

//另一种方法,以输入 字符 'c' 为例
String s = String.valueOf((char)c);// int -> char -> String,得到短字符串"c"
s = s+s+s; //这里是三个短的字符串 "c" 连成 "ccc",(注意 字符'c'和字符串"c"是有差别的)
System.out.println(s);
}
catch (IOException ex)
//^ 有 try 就必须有 catch,因为上面 is.read() 抛出的是 IOException, 所以这里捕获 IOException ,ex 是对象的名字
{
ex.printStackTrace();//例外能打印出运行时 jvm 中的的堆栈的情况,便于调试
}
}
}
xpzheng 2005-12-02
  • 打赏
  • 举报
回复
就是,忘了导入必要的包了,java有很多自己已经写好的类,可以在我们的程序中进行调用,但在调用之前,必须导入相应的包,比如在该程序中需要使用的InputStream 就是在java.io包中已经定义的一个类,所以需要引入java.io这个包,不然编译器就不认识了。

初学的时候多看看些比较基础的书
Hanana168 2005-12-02
  • 打赏
  • 举报
回复
谢谢了,这回行了,System.in的相关内容在书上还没找到,不过InputStreamtt

和OutputStream已找到,但是书上说InputStream中所提供的方法有int read();等等,
还是不太明白。不过你上面写的import java.io我还是能理解,
获取键盘键盘输入的字符其实还是System.in吧,为啥一定要InputStream is=System.in;呢?
niko7 2005-12-02
  • 打赏
  • 举报
回复

public class Copy3
的前面加一句:

import java.io.*;

InputStream 是输入流。
import 是导入类库的意思。
先把java的输入/输出的相关类库导入到这个程序文件中,然后才能用。
Hanana168 2005-12-02
  • 打赏
  • 举报
回复
完整的错误信息:
c:\java\Copy3.java:4:cannot resolve symbol
symbol:class InputStream
location:class Copy3
InputStream is=System.in;
^
另外catch <IOException ex>
^
错误信息一样
还有System.in到讲什么内容的章节下去找有关内容啊,
Hanana168 2005-12-02
  • 打赏
  • 举报
回复
niko7(掠水无痕)大师,不好意思,我这次是发了问题后才看到你的答案的,不过我还是有些看不懂,我的问题如下,而且我编译出错了,所以还请多指教,我正在努力地自学,才开始见笑了。

public class Copy3{
public static void main(String args[])
{
InputStream is = System.in; //获取键盘输入字符,InputStream是什么,
//^执行时箭头指向I,报错信息是 cannot resolve symbol
try
{
int c = is.read();
System.out.println( (char)c+""+(char)c+(char)c ); //输出三个字符

}
catch (IOException ex)
//^执行时箭头指向I,报错信息是 cannot resolve symbol

{
ex.printStackTrace();
} //try是例外处理语句
}
}
niko7 2005-12-02
  • 打赏
  • 举报
回复
漏了原帖的地址:http://community.csdn.net/Expert/topic/4424/4424560.xml?temp=.729397
niko7 2005-12-02
  • 打赏
  • 举报
回复
楼主,重复发贴了,自己前面的帖子不看回复,却在这里开新帖,不但得不到答案,而且很浪费分数哦。

62,614

社区成员

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

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