一、從StringTokenizer的用法計算賬單
我們可以使用StringTokenizer來計算賬單。假設我們有以下結賬單:
String bill = "麵包,10,3|餅乾,5,2|牛奶,20,1";
我們想要計算總共的花費。首先,我們需要將字元串按照”|”拆分為每一項,使用StringTokenizer的構造函數實現:
StringTokenizer st = new StringTokenizer(bill, "|");
然後,我們可以使用循環和StringTokenizer的nextToken()方法逐一獲取每一項,並按照”,”拆分為商品名稱、價格和數量。最後,我們將每項花費累加起來即可:
double totalCost = 0.0;
while (st.hasMoreTokens()) {
String item = st.nextToken();
StringTokenizer itemSt = new StringTokenizer(item, ",");
String itemName = itemSt.nextToken();
double itemPrice = Double.parseDouble(itemSt.nextToken());
int itemCount = Integer.parseInt(itemSt.nextToken());
totalCost += itemPrice * itemCount;
}
System.out.println("總共花費:" + totalCost);
二、StringTokenizer split
除了使用StringTokenizer的構造函數拆分字元串外,我們還可以使用String類的split方法。但是需要注意,StringTokenizer在拆分時會將分隔符消耗掉,而split方法不會。
舉個例子:
String example = "apple,banana,orange";
String[] array = example.split(",");
System.out.println(Arrays.toString(array)); // ["apple", "banana", "orange"]
StringTokenizer st = new StringTokenizer(example, ",");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken()); // "apple", "banana", "orange"
}
可以看到,array和使用StringTokenizer得到的結果是相同的,但是在使用StringTokenizer時分隔符”,”被消耗掉了。
三、StringTokenizer類
StringTokenizer類是Java中用於拆分字元串的類,其常用的構造函數有兩種:
- StringTokenizer(String str, String delim):按照指定的分隔符拆分字元串。
- StringTokenizer(String str, String delim, boolean returnDelims):按照指定的分隔符拆分字元串,如果returnDelims參數為true,則分隔符也會作為Token返回。
除此之外,StringTokenizer類還有許多方法,包括:
- hasMoreTokens():判斷是否還有Token未被獲取。
- nextToken():獲取下一個Token。
- countTokens():獲取剩餘未被獲取的Token數量。
四、StringTokenizer在哪個包
StringTokenizer類位於java.util包中。
五、String和StringTokenizer的區別
String和StringTokenizer都是Java用於處理字元串的類,它們的不同點在於:
- String:String是不可變對象,一旦創建String對象,其值就不能被改變。使用String類的方法可以操作字元串。
- StringTokenizer:StringTokenizer是可變對象,可以在遍歷字元串的途中改變其狀態,比如增加或刪除Token。使用StringTokenizer類的方法可以遍歷和操作Token。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256941.html
微信掃一掃
支付寶掃一掃