JAVA程序里怎么接收用户键盘录入的信息!

巫子 2003-10-30 12:35:00
在C语言里:
整型:scanf("%d",int i);
浮点型:scanf("%f",float i);
字符型:scanf("%c",char c);
字符串型:scanf("%s",char c[5]);

C++里:
CIN>>i;

JAVA里:
怎么获取呢?




...全文
789 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
dunai2003 2003-11-08
  • 打赏
  • 举报
回复
另外coolarmy(bb考拉猪) :“其实java推荐的是使用swing的交互式响应”
其实就是我在第一个帖子中所说的swing.JOptionPane.showInputDialog()方法,用这个方法,你不必再创建输入类,可以利用java本身提供的swing对话框得到输入。具体如下:

import javax.swing.*;
public class Input
{
public static void main(String[] args)
{
String input = JOptionPane.showInputDialog(null, "Enter a number");

int intNumber = Integer.parseInt(input);

// 或者可以转换成double
double doubleNumber = Double.parseDouble(input);

System.out.println("Integer: "+intNumber);
System.out.println("Double: "+doubleNumber);

System.exit(0);
}
}
dunai2003 2003-11-08
  • 打赏
  • 举报
回复
如果你的class文件在D:\myjava下,那么,被import的文件应该在D:\myjava\myimported中。这个文件夹中的*.java文件都应当有package名,如

//注意package名必须和当前文件夹名完全相同
package myimported;

public class MyImportedClass
{
public static void message()
{
System.out.println("Hello");
}
}

注意:一定要在D:\myjava下编译该文件,不要在D:\myjava\myimported下编译;编译格式为
javac myimported/MyImportedClass.java 或javac myimported.MyImportedClass.java
编译好以后,在D:\myjava\myimported会自动生成MyImportedClass.class文件。

这样,在你的D:\myjava文件夹中的*.java文件可以import上述文件了:

import myimported.MyImportedClass;

public class MyClass
{
public static void main(String[] args)
{
MyImportedClass.message();
}
}

运行当前代码,结果为:
hello
dunai2003 2003-11-08
  • 打赏
  • 举报
回复
token.TT_NUMBER: a constant number indicating that a number token has been read.
token.nval: if the current token is a number, this field contains the value of
that number.
巫子 2003-11-08
  • 打赏
  • 举报
回复
To: dunai2003():谢谢,了解中......,感觉JAVA的跨平台性其实牺牲了好多的便利呀。
zhanghuazhanghome 2003-11-08
  • 打赏
  • 举报
回复
能解释一下子 dunai2003() 的代码吗?
1)token.TT_NUMBER 2)token.nval
coolarmy 2003-11-07
  • 打赏
  • 举报
回复
其实java推荐的是使用swing的交互式响应。
lyyupeng 2003-11-07
  • 打赏
  • 举报
回复
建议出学者先用eclipse,,
dunai2003 2003-11-07
  • 打赏
  • 举报
回复
是的,你可以建立自己的库,然后用import调用,语法格式和调用系统库一样。
import yourFolderName.subFolderName.className;
巫子 2003-11-07
  • 打赏
  • 举报
回复
To:dunai2003() :是指定路径吗?那我的class文件都在d:\myjava下,怎么import?

To:lyyupeng(coolnetboy) :eclipse是编译器吗?

To:coolarmy(bb考拉猪) :swing???????????
apple21 2003-11-05
  • 打赏
  • 举报
回复
mark
巫子 2003-11-05
  • 打赏
  • 举报
回复
To dunai2003()

谢谢,你解释得很详细,我想“java只允许一个文件里有一个public class”是因为封装的原因吧,要不就没什么意义了。
还有点问题,把class InvalidUserInputException单独作为一个文件编译之后的文件如果和main()在一个目录,应该可以直接用吧,那如果不在同一个目录呢?是不是有个什么import?

我是刚学,用的清华张孝祥老师的书,很适合初学者,但很多地方讲得不深。
dunai2003 2003-11-04
  • 打赏
  • 举报
回复
to 巫子(用心的人

java中没有通用的输入类,确实实java的美中不足,这和用不用jbuilder没有关系,因为jbuilder只是IDE而已,背后的编译仍然是javac。
另:关于编译错误,是因为你把class InvalidUserInputException和其他class放在一个文件里了:java只允许一个文件里有一个public class。因此,你要么把class InvalidUserInputException单独作为一个文件编译,文件名一定要和class名一致(包括大小写);要么取消public关键字,这样才能和其他class放在同一文件中编译。
不知我解释清楚了没有。
巫子 2003-11-03
  • 打赏
  • 举报
回复
dunai2003() :你的代码运行过了,不错,谢谢!JAVA里输入这么麻烦吗?还是用JBUILDER后就会简单些呢?

还有:
D:\MyJava>javac formattedinput.java
formattedinput.java:51: class InvalidUserInputException is public, should be dec
lared in a file named InvalidUserInputException.java
public class InvalidUserInputException extends Exception

为什么不删掉类InvalidUserInputException前的public就会出这样的错误呢?你们是不是也这样?我以前的其它程序也是,有些类前如果用了public就会出错.
巫子 2003-10-31
  • 打赏
  • 举报
回复
To cool_li(G.T.O) ,具体语法怎么用?我用过,提示有错误,我又是刚学java,不大懂。

1.System.in.read(int i);
2.int i=System.in.read();
Which one?()
cool_li 2003-10-31
  • 打赏
  • 举报
回复
System.in.read();
巫子 2003-10-31
  • 打赏
  • 举报
回复
谢谢 dunai2003() 给的代码,我今天下班回去试试。

To Pilchardyx(沙丁鱼) ,你是不是说把public static void main(String[] args)里args里的字符串转换?那我要INT和FLOAT型的怎么办?
Pilchardyx 2003-10-30
  • 打赏
  • 举报
回复
那得强制转换了。用一些强制转换符将你从键盘录入的字符转换成你要用到的字符类型。试试看了。
dunai2003 2003-10-30
  • 打赏
  • 举报
回复
OOps!! readDouble()并不是完成品,可利用readInt()简单修改。
dunai2003 2003-10-30
  • 打赏
  • 举报
回复
java中没有和C/C++对应的输入函数。要解决输入问题,有两个办法:最简单的是利用其swing.JOptionPane对话框类,接收字符串输入,然后利用Integer/Double.parseXX()方法将其转换成相应的类型。另一种方法是自己写一个输入类,解决从命令行输入的问题。
我这里有一段代码可供参考,但这决不是唯一的方法。

import java.io.*;

public class FormattedInput
{
private int ttype;
private StreamTokenizer token = new StreamTokenizer( new BufferedReader(
new InputStreamReader(System.in)));

private int readToken()
{
try
{
ttype = token.nextToken();
return ttype;
}
catch (IOException e)
{
e.printStackTrace();
}

return 0;
}
public int readInt() throws InvalidUserInputException
{
if (readToken() != token.TT_NUMBER)
{
throw new InvalidUserInputException("readInt() failed. Input data not numeric");
}
return (int)token.nval;
}
public double readDouble()
{
//if (readToken() == token.TT_NUMBER)
return 0;

}
public static void main(String[] args)
{
FormattedInput kb = new FormattedInput();

try {
System.out.print("Enter an integer: ");
System.out.println("Integer read: "+kb.readInt());
} catch (InvalidUserInputException e) {
System.out.println("not numeric");
e.getMessage();
}
}
}

public class InvalidUserInputException extends Exception
{
public InvalidUserInputException(String msg)
{
super(msg);
}
}

62,614

社区成员

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

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