2012-11-10 30 views
1

例如: 有人訂購一些電影票: 用戶輸入: 3門票取2個17.50 我怎樣才能提取門票購買的數量,知道電影選擇並從輸入的字符串中總計成本。打破組分在字符串句子由用戶

任何幫助,非常感謝。

    String Mac1 
     System.out.println("Enter num of tickets, movie & (at) ticket price:"); 
     Mac1 = input.nextLine(); 

     String Mov1[]= Mac1.split(", "); 

      for (int i = 0; i < Mov1.length; i++) 
      { 
       System.out.print(Mov1[i]); 

      } 
+0

是輸入總是形式爲「This_Movie在This_Time的N票」? – Chris

+0

查看

回答

1

好像正則表達式是這個職位的最佳工具(不管它看起來多麼糟糕):

(\\d+) tickets for (.*) at (\\d{1,2})[.:](\\d{2}) 
+0

@ Chris,This_Movie的門票數量此價格下,我可能需要添加時間到字符串中。 –

2

使用正則表達式出現在這裏更適合:

Matcher m = Pattern.compile("(\\d+) tickets for (.*) at (.*)").matcher(Mac1); 
if (m.matches()) { 
    int tickets = Integer.parseInt(m.group(1)); 
    String movie = m.group(2); 
    double cost = Double.parseDouble(m.group(3)); 
    double total = tickets * cost; 
}