鑑於形式的字符串:StringTokenizer的不查看選項卡( 「 t」 的)爲空白( 「\ S +」)
String myStr = "5.1\t3.5\t1.4\t0.2\t0.0";
如果我稱之爲:
StringTokenizer token = new StringTokenizer(myStr, "\\s+");
String firstElement = token.nextToken();
firstElement然後等於整個字符串。相反,如果我撥打:
StringTokenizer token2 = new StringTokenizer(myStr);
String firstElement = token2.nextToken();
firstElement等於「5.1」。同樣如果我使用String split如下:
String[] splitArray = myStr.split("\\s+")
String firstElement = splitArray[0];
then,firstElement是「5.1」。
我知道StringTokenizer不鼓勵使用,並被歸類爲「遺留類」。我的意圖是理解Split和StringTokenizer之間爲什麼相同的分隔符有不同的作用。我會期待第一個例子像後兩個一樣工作,但由於某種原因,它跳過了標籤。任何指導我缺少什麼將不勝感激。
注意我在Eclipse的OSX上運行1.7.0_19,但我不希望這些變量在這裏有效。
的StringTokenizer與「\\ s +」的使用基於這個Ha來自MapR的doop教程。我認爲這是錯誤的。 https://www.mapr.com/blog/how-write-mapreduce-program#.VfZblvlVhBc – ZaydH