":" の後にある文字列を認識するためには、scan.useDelimiter() を使用する必要があります。
同様のエントリのリストから次の行を取得するスキャナーを作成しています。
c : 20002 : The Dragon : Dreama : 10000 : 1 : 22 : 9 : 237.20 : 60.47 : 354.56
これは私がこれまでに持っているものです:
public Boolean readFile (){ //Fix tomorrow
while ( input.hasNext () ) {
char x = stat.next().charAt(0);
String line = input.nextLine().trim();
Scanner stat = new Scanner(line).useDelimiter("\\s*:\\s*")
if( line.length()== 0 || input.next().charAt(0) == '/' ) continue;
switch ( x ) {
case 'c' :
int a = stat.nextInt();
String b = stat.next();
break;
case 't' :
//...
何らかの理由で、これを正しくスキャンできません。上記のエントリには、次の文字列が必要です。
20002, The Dragon, Dreama, 10000, etc.
ご覧のとおり、フレーズの端にあるスペースを無視する必要がありますが、「The Dragon」などのフレーズの間にスペースがある場合は、それを保持する必要があります。