十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在Java中不像C语言中那么方便直接使用scanf(),下面是我积累的一些方法:
创新互联公司是一家专注于成都做网站、成都网站建设与策划设计,东兴网站建设哪家好?创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:东兴等地区。东兴做网站价格咨询:18982081108
1.控制台输入数据
1.1 主方法的形式参数
1.2 利用字节输入流
1.3 利用字符输入流
1.4 利用文本扫描类
2. 对话框输入数据
下面将针对这几种方法分别利用例子进行说明:
1. 控制台输入数据
1.1 主方法的形式参数
在Java中利用main(String args[])中的args数组来对参数进行赋值,有下例:
package InputTest;
public class DataKeyboardInput1 {
/**主方法的形式参数来输入数据
* DataKeyboardInput1.java
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(args[0]);
}
}
在命令行下输入javac DataKeyboardInput1.java --》Java DataKeyboardInput1 HelloWorld 输出就是 HelloWorld 了
1.2 利用字节输入流
字节输入流System.in 是类InputStream的常量对象,调用read()方法可以从键盘接收数据。实现的步骤是:先把数据读入字节数组中,然后利用字节数组定义字符串,最后把字符串转化为需要的数据类型。
package InputTest;
import java.io.*;
public class DataKeyboardInput2 {
/**利用字节输入流来输入数据
* DataKeyboardInput2.java
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte buf[]=new byte[10]; //字节数组,输入为10个
String str;
int num = 0;
try{
//把数据读入到字节数组中
System.in.read(buf);
//利用字节数组创建字符串
str=new String(buf,0);
//把字符串数据转换为整型数据
num=Integer.parseInt(str.trim());
}catch(Exception e){
System.out.print(e);
}System.out.println(num);
}
}
1.3 利用字符输入流
字符输入流BufferedReader是从字符输入流中读取文本,缓冲各个字符,从而提供字符,数组和行的高效读取。常用方法:
read(): 读取单个字符; readLine():读取一行字符,即为读取一个字符串
package InputTest;
import java.io.*;
public class DataKeyboardInput3 {
/**利用字符输入流来进行输入处理
* @param args
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str="";
int num = 0;
try{
str=br.readLine();
num=Integer.parseInt(str);
}catch(IOException e){
System.out.println(e.toString());
}System.out.println(num);
}
}
1.4 利用文本扫描类
文本扫描类Scanner是jdk5.0新增加的类,它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,它使用分隔符模式将其输入分解为标记默认情况下该分隔符模式与空白匹配,然后使用不同的next方法将得到的标记转换为不同类型值。获取基本类型数据的方法是:
整型:nextInt() 单精度:nextFloat() 双精度: nextDouble() 字符串: next()
package InputTest;
import java.util.Scanner;
public class DataKeyboardInput4 {
/**利用文本扫描类来进行输入处理
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int num=input.nextInt();
System.out.println(num);
}
}
2. 对话框输入数据
使用JOptionPane创建输入对话框,实现键盘输入
showConfirmDialog(): 询问一个确认问题,如yes/no/cancer
showInputDialog(): 提示要求某些输入
showMessageDialog(): 告知用户某事已经发生
其中,输入对话框的常用参数形式有:
showInputDialog(Object message) : message 表提示信息
showInputDialog(Object message,Object initialSelectionValue): 如果没有输入数据,则默认初始值为initalSlectionValue
package InputTest;
import javax.swing.JOptionPane;
public class DataInputDialog {
/**对话框输入数据
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str;
str=JOptionPane.showInputDialog("input data:");
int num=Integer.parseInt(str);
System.out.println(num);
}
}
想取得一个字符的asc码,只需要将该字符强转成int输出即可。
下面是代码:
import java.util.Scanner;
public class TestInput {
public static void main(String[] args) {
while (true) {
System.out.println("请输入一个字符串,以回车结束");
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
char[] c = s.toCharArray();
for (int i = 0; i c.length; i++) {
System.out.println("该字符串中第"+(i+1)+"个字符的asc码为:" + (int) c[i]);
}
}
}
}
如果问题解决,请采纳本答案。
亲,,你应该先搞明白while和do while
再问问题,,很明显,你这个的原因是while实现判断循环条件在判断是否循环,,
你换成do while试试
可以使用java的Scanner类,常见的是用nextInt()输入一个整数,用next()输入一个字符串,下面是一个小的演示程序。
public class InputTest
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println(input.nextInt());
System.out.println(input.next());
input.close();
}
}
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Demo1 extends JFrame implements
MouseMotionListener,KeyListener,MouseListener {
private JPanel content;
private JPanel bottom;
private JLabel show;
static String keyCode="";
public Demo1(){
content=new JPanel();
content.setLayout(null);
show=new JLabel();
show.setForeground(Color.white);
bottom=new JPanel();
content.setBounds(0, 0, 800, 600);
content.setBackground(Color.black);
content.add(show);
content.setFocusable(true);
content.addKeyListener(this);
content.addMouseMotionListener(this);
content.addMouseListener(this);
setTitle
("读取键盘输入的字符并将其显示到鼠标所指的位置");
setSize(800, 600);
setLocationRelativeTo(getOwner());
add(content);
add(bottom);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
keyCode+=String.valueOf((char)e.getKeyCode());
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
new Demo1();
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
if(keyCode!=""){
show.setText(keyCode);
show.setBounds(e.getX()+20, e.getY(), 800, 30);
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
keyCode="";
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
java初学者,一定对从键盘输入数据感到困难,使用下面的类Input,可以
方便的从键盘输入数据:
使用方法举例: String s=Input.readString(); 读入字符串
int i=Input.readInt(); 读入整数
下面是java输入输出基本类Input类的源代码:
最后以从键盘输入10个整数为例说明之。
import java.io.*;
class Input
{static InputStreamReader in;br/ static BufferedReader reader;br/ staticbr/ {in=new InputStreamReader(System.in);br/ reader=new BufferedReader(in);br/ }
static String readString()
{String s="";br/ trybr/ { s=reader.readLine();br/ br/ }
catch(IOException e)
{System.out.println(e);br/ System.exit(0);br/ }
return s;
}
static char readChar()
{char ch='a';br/ trybr/ {br/ String s=readString();br/ ch=s.charAt(0);br/ br/ }
catch(Exception e)
{System.out.println("输入的数据类型不对,程序将退出");br/ System.exit(0);br/ }
return ch;
}
static int readInt()
{String s=readString();br/ int i=0;br/ try{br/ i=Integer.parseInt(s);br/ }
catch(Exception e)
{System.out.println("输入的数据类型不对,程序将退出");br/ System.exit(0);br/ }
return i;
}
static double readDouble()
{String s=readString();br/ double d=0.0;br/ trybr/ {d=Double.parseDouble(s);br/ }
catch(Exception e)
{System.out.println("输入的数据类型不对,程序将退出");br/ System.exit(0);br/ }
return d;
}
static float readFloat()
{
String s=readString();
float f=0.0f;
try
{
f=Float.parseFloat(s);
}
catch(Exception e)
{ System.out.println("输入的数据类型不对,程序将退出");
System.exit(0);
}
return f;
}
}
/*用法举例,从键盘输入十个整数:*/
class InoutData
{public static void main(String args[])br/ { int a[]=new int[10];br/ for(int i=0;i10;i++)br/ { System.out.println("请输入第"+(i+1)+"个数:");br/ a[i]=Input.readInt();br/ }
for(int i=0;i10;i++)
System.out.println("a["+i+"]="+a[i]);
}
}