[JAVA] StringTokenizer

今天閒著跑去高中生點了一題出來 - 讀取練習-強大的加法

用Scanner自動濾掉空格結果還是有錯,

看得出來測資應該就不像範例只有一位元那麼單純。

google 一下,找到了一個可以拆解字串的類別 - StringTokenizer

StringTokenizer 預設情況下是以空白符號分解字串。

先讀取整行:

1
String si = input.nextLine();

再來拆解:

1
StringTokenizer sc = new StringTokenizer(si);

這時候整行字串會依空格將整行字串拆解。

例如今天傳入一行 Hello world   by           Calos

那麼拆解後就會變成:

1
2
3
4
Hello
world
by
calos

有人應該有疑問說,空格很多格,不會拆解出一堆空白字串嗎??

上面有提到:StringTokenizer預設情況下是以空白符號分解字串。

即讀取到space時是自動忽略,並且以 space 來判定一個字串的結尾。

題目範例輸入:

1
2
1 2
2 5 8 8 8 5

依第二行測資,字串會拆解為:2、5、8、8、8、5

把拆解過後的數字轉型並加總:

1
2
3
4
int sum = 0;
while ( sc.hasMoreTokens() ) {
    sum += Long.parseLong( sc.nextToken() );
}

輸出:

1
System.out.println(sum); //36

ps: 先拉套件進來才能正常運作

1
2
import java.util.*;
import java.math.*;
Licensed under CC BY-NC-SA 3.0 TW
comments powered by Disqus