在Java中不像C語(yǔ)言中那么方便直接使用scanf(),下面是我積累的一些方法:
創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),東興網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:東興等地區(qū)。東興做網(wǎng)站價(jià)格咨詢(xún):18982081108
1.控制臺(tái)輸入數(shù)據(jù)
1.1 主方法的形式參數(shù)
1.2 利用字節(jié)輸入流
1.3 利用字符輸入流
1.4 利用文本掃描類(lèi)
2. 對(duì)話框輸入數(shù)據(jù)
下面將針對(duì)這幾種方法分別利用例子進(jìn)行說(shuō)明:
1. 控制臺(tái)輸入數(shù)據(jù)
1.1 主方法的形式參數(shù)
在Java中利用main(String args[])中的args數(shù)組來(lái)對(duì)參數(shù)進(jìn)行賦值,有下例:
package InputTest;
public class DataKeyboardInput1 {
/**主方法的形式參數(shù)來(lái)輸入數(shù)據(jù)
* 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 利用字節(jié)輸入流
字節(jié)輸入流System.in 是類(lèi)InputStream的常量對(duì)象,調(diào)用read()方法可以從鍵盤(pán)接收數(shù)據(jù)。實(shí)現(xiàn)的步驟是:先把數(shù)據(jù)讀入字節(jié)數(shù)組中,然后利用字節(jié)數(shù)組定義字符串,最后把字符串轉(zhuǎn)化為需要的數(shù)據(jù)類(lèi)型。
package InputTest;
import java.io.*;
public class DataKeyboardInput2 {
/**利用字節(jié)輸入流來(lái)輸入數(shù)據(jù)
* DataKeyboardInput2.java
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte buf[]=new byte[10]; //字節(jié)數(shù)組,輸入為10個(gè)
String str;
int num = 0;
try{
//把數(shù)據(jù)讀入到字節(jié)數(shù)組中
System.in.read(buf);
//利用字節(jié)數(shù)組創(chuàng)建字符串
str=new String(buf,0);
//把字符串?dāng)?shù)據(jù)轉(zhuǎn)換為整型數(shù)據(jù)
num=Integer.parseInt(str.trim());
}catch(Exception e){
System.out.print(e);
}System.out.println(num);
}
}
1.3 利用字符輸入流
字符輸入流BufferedReader是從字符輸入流中讀取文本,緩沖各個(gè)字符,從而提供字符,數(shù)組和行的高效讀取。常用方法:
read(): 讀取單個(gè)字符; readLine():讀取一行字符,即為讀取一個(gè)字符串
package InputTest;
import java.io.*;
public class DataKeyboardInput3 {
/**利用字符輸入流來(lái)進(jìn)行輸入處理
* @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 利用文本掃描類(lèi)
文本掃描類(lèi)Scanner是jdk5.0新增加的類(lèi),它是一個(gè)可以使用正則表達(dá)式來(lái)解析基本類(lèi)型和字符串的簡(jiǎn)單文本掃描器,它使用分隔符模式將其輸入分解為標(biāo)記默認(rèn)情況下該分隔符模式與空白匹配,然后使用不同的next方法將得到的標(biāo)記轉(zhuǎn)換為不同類(lèi)型值。獲取基本類(lèi)型數(shù)據(jù)的方法是:
整型:nextInt() 單精度:nextFloat() 雙精度: nextDouble() 字符串: next()
package InputTest;
import java.util.Scanner;
public class DataKeyboardInput4 {
/**利用文本掃描類(lèi)來(lái)進(jìn)行輸入處理
* @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. 對(duì)話框輸入數(shù)據(jù)
使用JOptionPane創(chuàng)建輸入對(duì)話框,實(shí)現(xiàn)鍵盤(pán)輸入
showConfirmDialog(): 詢(xún)問(wèn)一個(gè)確認(rèn)問(wèn)題,如yes/no/cancer
showInputDialog(): 提示要求某些輸入
showMessageDialog(): 告知用戶(hù)某事已經(jīng)發(fā)生
其中,輸入對(duì)話框的常用參數(shù)形式有:
showInputDialog(Object message) : message 表提示信息
showInputDialog(Object message,Object initialSelectionValue): 如果沒(méi)有輸入數(shù)據(jù),則默認(rèn)初始值為initalSlectionValue
package InputTest;
import javax.swing.JOptionPane;
public class DataInputDialog {
/**對(duì)話框輸入數(shù)據(jù)
* @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);
}
}
想取得一個(gè)字符的asc碼,只需要將該字符強(qiáng)轉(zhuǎn)成int輸出即可。
下面是代碼:
import java.util.Scanner;
public class TestInput {
public static void main(String[] args) {
while (true) {
System.out.println("請(qǐng)輸入一個(gè)字符串,以回車(chē)結(jié)束");
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)+"個(gè)字符的asc碼為:" + (int) c[i]);
}
}
}
}
如果問(wèn)題解決,請(qǐng)采納本答案。
親,,你應(yīng)該先搞明白while和do while
再問(wèn)問(wèn)題,,很明顯,你這個(gè)的原因是while實(shí)現(xiàn)判斷循環(huán)條件在判斷是否循環(huán),,
你換成do while試試
可以使用java的Scanner類(lèi),常見(jiàn)的是用nextInt()輸入一個(gè)整數(shù),用next()輸入一個(gè)字符串,下面是一個(gè)小的演示程序。
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
("讀取鍵盤(pán)輸入的字符并將其顯示到鼠標(biāo)所指的位置");
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初學(xué)者,一定對(duì)從鍵盤(pán)輸入數(shù)據(jù)感到困難,使用下面的類(lèi)Input,可以
方便的從鍵盤(pán)輸入數(shù)據(jù):
使用方法舉例: String s=Input.readString(); 讀入字符串
int i=Input.readInt(); 讀入整數(shù)
下面是java輸入輸出基本類(lèi)Input類(lèi)的源代碼:
最后以從鍵盤(pán)輸入10個(gè)整數(shù)為例說(shuō)明之。
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("輸入的數(shù)據(jù)類(lèi)型不對(duì),程序?qū)⑼顺?);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("輸入的數(shù)據(jù)類(lèi)型不對(duì),程序?qū)⑼顺?);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("輸入的數(shù)據(jù)類(lèi)型不對(duì),程序?qū)⑼顺?);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("輸入的數(shù)據(jù)類(lèi)型不對(duì),程序?qū)⑼顺?);
System.exit(0);
}
return f;
}
}
/*用法舉例,從鍵盤(pán)輸入十個(gè)整數(shù):*/
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("請(qǐng)輸入第"+(i+1)+"個(gè)數(shù):");br/ a[i]=Input.readInt();br/ }
for(int i=0;i10;i++)
System.out.println("a["+i+"]="+a[i]);
}
}
分享題目:java代碼獲取鍵盤(pán)輸入 java在鍵盤(pán)上輸入的代碼
URL網(wǎng)址:http://vcdvsql.cn/article18/hhhggp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、用戶(hù)體驗(yàn)、定制網(wǎng)站、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容