前提・実現したいこと
標準入力の際にしばしば使われるScannerオブジェクトについて質問です。
Java初学者ですが、多言語の経験が少しあり、オブジェクト指向はなんとなく理解しています。
発生している問題・エラーメッセージ
「Scannerは、区切り文字によって入力をトークンに分割し、区切り文字のデフォルトは空白文字」というようなことが公式リファレンスには書いてありました。しかし、
Java
1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) throws Exception { 5 // Your code here! 6 String input="28 sb32aaa ba2bs\nb32abes 2myajobs 4bsak\nhi my name is tontonchiki"; 7 Scanner sc=new Scanner(input); 8 for(int i=0;i<4;i++){ 9 System.out.println(sc.next()); 10 System.out.println("----"); 11 } 12 }
この出力が、
28
sb32aaa
ba2bs
b32abes
こうなるのが理解できません。
\nは空白文字でないので、3,4回目の出力は
28
sb32aaa
ba2bs
b32abes
2myajobs
こうなると思っていたのですが...
これは、Scannerオブジェクトが区切り文字として空白文字だけでなく改行文字も認識しているのか、Scannerオブジェクトへの入力時は空白文字で区切ったトークンが作成されているが、next()メソッドの使用時に改行文字で区切るようになっているのか...
どなたかお教え下さい。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/17 10:50