Javaスキャナークラス(next()とnextLine()の違い、一度理解してください!)



Java Scanner Class



java.util.ScannerはJava5の新機能であり、Scannerクラスを介してユーザーの入力を簡単に取得できます。

1.入力文字列は、next()メソッドまたはnextLine()メソッドを介して取得できます。

例としてnextLine()メソッドを取り上げます。



import java.util.Scanner public class Test1 { public static void main(String[] args) { System.out.println('Please enter data:') Scanner sc=new Scanner(System.in) if(sc.hasNextLine()){ String s=sc.nextLine() System.out.println('The input data is: '+s) } } }

nextLineメソッドは以下を受け取ります。

test1 test2



入力データは次のとおりです。test1test2

そして、次のメソッドを使用して受信する場合:

test1 test2



入力データは次のとおりです。test1

next()メソッドとnext()メソッドの違い:

次():

  1. 有効な文字を入力すると、ターミネータとして使用された後、空白またはキャリッジリターンが返されます
  2. 有効な文字の前の空白は自動的に除外されます。
  3. スペースを含む文字列を取得できません。

nextLine():

  1. キャリッジリターンの前のすべてのデータを取得できます(文字通り、入力行を取得することとして理解することもできます)。
  2. 明らかに、それは空白になる可能性があります。

2. nextLine()を介して入力された数直線を取得します(インタビューでよく考慮される入力形式の問題)

具体的なコードとコメントは次のとおりです。 分割された文字列に注意し、文字列型をint型に変換し、配列の添え字に注意します 、 あなたはできる。

import java.util.Scanner public class Test { public static void main(String[] args){ Scanner sc=new Scanner(System.in) int a[]=new int[99] if(sc.hasNextLine()){ String s=sc.nextLine() String temp[]=s.split(' ')//Split the string, remove whitespace int count=0,sum=0 for (String s1 : temp) { a[count]= Integer.parseInt(s1) //String is converted to int type count++ } for(int i=0i

入力:521 13 14

出力:521 13 14