❶ java中Scanner輸入字元串和BufferedReader輸入字元串的區別
Scanner 和BufferedReader輸入實例如下:
importjava.io.*;
importjava.util.Scanner;
publicclassC{
publicstaticvoidmain(String[]args)throwsIOException
{
Stringx1,x2;
intsum=0;
System.out.print("BufferedReader方法 inputtwonumber:");
//BufferedReader對象只將回車看作輸入結束,得到的字元串
BufferedReadermyReader=newBufferedReader(newInputStreamReader(System.in));
x1=myReader.readLine();
x2=myReader.readLine();
inta=Integer.parseInt(x1);
intb=Integer.parseInt(x2);
sum=a+b;
System.out.printf("Sum=%d",sum);
System.out.println(" Scanner方法");
Scannersc=newScanner(System.in);
inta1,b1;
a1=sc.nextInt();
//Scanner對象把回車,空格,tab鍵都看作輸入結束,直接用sc.next()得到的是字元串形式
b1=sc.nextInt();
System.out.print("sum="+(a1+b1));
}
}
BufferedReader是字元輸入流中讀取文本,緩沖各個字元,從而提供字元、數組和行的高效讀取!速度要比Scanner快!而且也可以設置緩沖區的大小,或者可使用默認的大小。大多數情況下,默認值就足夠大了。
在創建Scanner類的對象時,需要用System.in作為它的參數,也可以將Scanner看作是System.in對象的支持者,System.in取得用戶輸入的內容後,交給Scanner來作一些處理.
Scanner類中提供了多個方法:
next():取得一個字元串;
nextInt():將取得的字元串轉換成int類型的整數;
nextFloat():將取得的字元串轉換成float型;
nextBoolean():將取得的字元串轉換成boolean型;
如果想讀取正行文本,可以使用nextLine()方法;
Scanner類位於java.util包中,要加上import java.util.Scanner;用Scanner獲得用戶的輸入非常的方便,但是Scanner取得輸入的依據是空格符,包括空格鍵,Tab鍵和Enter鍵.當按下這其中的任一鍵時,Scanner就會返回下一個輸入.當你輸入的內容中間包括空格時,顯然,使用Scanner就不能完整的獲得你輸入的字元串.這時候我們可以考慮使用BufferedReader類取得輸入.其實在Java SE1.4及以前的版本中,尚沒有提供Scanner方法,我們獲得輸入時也是使用BufferReader的.
BufferedReader類位於java.io包中,所以要使用這個類,就要引入java.io這個包
import java.io.BufferedReader. readLine()方法會返回用戶在按下Enter鍵之前的所有字元輸入,不包括最後按下的Enter返回字元.以Enter鍵為結尾。
使用BufferedReader對象的readLine()方法必須處理java.io.IOException異常(Exception).使用BufferedReader來取得輸入,理解起來要復雜得多.但是使用這個方法是固定的,每次使用前先如法炮製就可以了
另外,對於Scanner 和BufferedReader還可以有以下實例:
packagecom.demo;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.util.Scanner;
publicclassDemo{
publicstaticvoidmain(String[]args)throwsException{
Stringm=newString("");
int[]a={0,0,0};
BufferedReaderstdin=newBufferedReader(newInputStreamReader(
System.in));
System.out.println("輸入三個數(以一個空格分開):");
m=stdin.readLine();
Scannerscan=newScanner(m);//將輸入的一行文本作為掃描對象
for(inti=0;i<a.length;i++){
a[i]=scan.nextInt();
}
System.out.println("輸入數為:");
for(inti=0;i<a.length;i++){
System.out.print(a[i]+"");
}
}
}
對於Scanner ,是一個可以使用正則表達式來解析基本類型和字元串的簡單文本掃描器。掃描器可以從實現Readable介面的任何對象讀取文本。
構造方法:
Scanner(Filesource)
構造一個新的Scanner,它生成的值是從指定文件掃描的。
Scanner(Filesource,StringcharsetName)
構造一個新的Scanner,它生成的值是從指定文件掃描的。
Scanner(InputStreamsource)
構造一個新的Scanner,它生成的值是從指定的輸入流掃描的。
Scanner(InputStreamsource,StringcharsetName)
構造一個新的Scanner,它生成的值是從指定的輸入流掃描的。
Scanner(Readablesource)
構造一個新的Scanner,它生成的值是從指定源掃描的。
Scanner(ReadableByteChannelsource)
構造一個新的Scanner,它生成的值是從指定信道掃描的。
Scanner(ReadableByteChannelsource,StringcharsetName)
構造一個新的Scanner,它生成的值是從指定信道掃描的。
Scanner(Stringsource)
構造一個新的Scanner,它生成的值是從指定字元串掃描的。
❷ java裡面可以利用scanner輸入字元串么如果不可以,除了main函數的string args
scanner 可以接收用戶輸入的的字元串的呀,用法如下
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println(scanner.nextLine());
scanner.close();
}
❸ 關於Java Scanner輸入字元串的問題
String類型,判斷相同不是用==,而是用equals()方法。「==」判斷是地址是否相同,顯然是兩個不同的對象,所以地址不同;而equals()判斷的是內容是否相同。
❹ java中如何用Scanner類讀入單個字元
Scanner沒有直接讀入單個字元的方法
有些網友使用了以下方法,但是這個方法沒辦法讀入空格符(空格符也是char類型的字元)
因為Scanner以空格符作為輸入完畢的標志
以下是可以讀入包含空格符在內的單個字元的代碼:
第一次輸入字元a,可以讀入
第二次輸入空格符,可以讀入
❺ Java怎麼統計指定字元出現的次數。要用Scanner輸入一個字元
你輸入一個字元串Scanner方式,比如 string s1 =null;
Scanner scanner =new Scanner(System.in);
s1 = scanner.nextline;
然後把這個s1 tochararray 一下,變成一個char[] 數組
然後遍歷這個數組,比如你要找a出現的次數,你就設定一個count來計算。
遍歷數組時候,若char[i]="a" count就+1,
最後count就是統計的次數啦。
public class Jjjj {
/**
* @param args
*/
public static void main(String[] args) {
String s1 = (new Scanner(System.in)).next();
char[] char1 = s1.toCharArray();
int count = 0;
char a = "a".charAt(0);
for(int i=0;i<char1.length;i++){
if(char1[i] == a){
count++;
}
}
System.out.println(count);
}
}
輸入aaahfhkshka
統計a的個數 就是4
❻ java中Scanner鍵盤輸入一個字元串 要求計算出每個字元出現的次數
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
/*
* (1)利用鍵盤錄入,輸入一個字元串
(2)統計該字元串中各個字元的數量
*/
public class InputString {
public static void main(String[] args) {
//獲取鍵盤輸入的字元串
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個字元串!");
String st=sc.nextLine();
//將字元串存分解成每個字元,存到數組中
char [] ch=st.toCharArray();
//創建map的集合,存儲字元和出現的次數,其中將字元作為鍵值
Map<Character,Integer> map=new HashMap<Character,Integer>();
//使用循環,將數組ch中的元素遍歷出來,並用計數器計算出現的次數
for(char c:ch) {
//判斷字元c是否存在集合中,存在的話,更新map中的元素對(因為map中的元素是唯一的)
if(map.containsKey(c)) {
Integer count=map.get(c);
count=count+1;
map.put(c, count);
//如果不存在,將字元和出現的次數(1次),存到集合中
}else {
map.put(c, 1);
}
}
//用增強for循環,輸出字元的出現次數
for(char key:map.keySet()) {
System.out.println(key+"的出現次數是"+map.get(key));
}
}
}
===================================
運行後的結果如下:
❼ java中,我用scanner 輸入,當輸入的字元有空格時,為什麼得到的值只有空格前面的值
因為Scanner類默認的分隔符就是空格,所以當你輸入了多組數據且是用空格分隔每組,則你需要使用nextXXX()方法來得到相應的輸入數據。
XXX代表的是具體的數據類型,例如獲取int,則nextInt()
❽ java輸入語句scanner
java對於一些小夥伴們來說真的是覺得難於上青天,還沒有開始學習就各種抱怨了,還擔心自己學不會,其實不是這樣的,大家把心態放平,遇到問題一步一步的來解決,你就會覺得java還是一個神奇的操作。今天我來跟大家分享關於java輸入語句scanner的操作步驟,相信學習了一下的操作步驟,關於scanner語句你就可以輕松的操作出來了,具體的步驟操作就在下方,小夥伴們快來認真的看一看吧!相信會幫到你~
1.首先,大家可以看到我在java上邊輸入的scanner語句,(如下圖紅色圈出部分所示)。
2.我們可以看到最後的運行結果,(如下圖所示)。
3.最後,給小夥伴們解釋一下部分說明:importjava.util.Scanner的作用是來構建Scanner對象。System.in作為參數傳遞給Scanner的構造函數,使Scanner用鍵盤作為輸入,然後用new在內存中實例化一個Scanner出來,其它變數就可以調用這塊內存區域。
以上的操作步驟就是java輸入語句scanner的具體操作步驟,已經詳細的給小夥伴們羅列出來了,大家按照以上的操作步驟按步就班的進行操作就可以正確輸入語句scanner,是不是看了以上步驟也不覺得很困難了。最後,希望以上的操作步驟對你有所幫助!
本篇文章使用以下硬體型號:聯想小新Air15;系統版本:win10;軟體版本:JAVA2017。
❾ java怎麼scanner輸入字元串
System.out.println("請輸入:");
Scanner scanner=new Scanner(System.in);
String expression=scanner.nextLine();
scanner.close();
❿ java中如何輸入一個數,用scanner語句
掃描控制台輸入。
當通過new Scanner(System.in)創建一個Scanner,控制台會一直等待輸入,直到敲回車鍵結束,把所輸入的內容傳給Scanner,作為掃描對象。如果要獲取輸入的內容,則只需要調用Scanner的nextLine()方法即可。
/**
* 掃描控制台輸入
*
* @author leimin 2009-7-24 11:24:47
*/
public class TestScanner {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("請輸入字元串:");
while (true) {
String line = s.nextLine();
if (line.equals("exit")) break;
System.out.println(">>>" + line);
}
}
}
請輸入字元串:
234
>>>234
wer
>>>wer
bye
>>>bye
exit
Process finished with exit code 0
(10)javascanner輸入字元擴展閱讀:
Java還包括一個類的擴展集合,分別組成各種程序包(Package),用戶可以在自己的程序中使用。例如,Java提供產生圖形用戶介面部件的類(java.awt包),這里awt是抽象窗口工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類(java.io包)和支持網路功能的類(java.net包)。