1

例如:有人订购了一些电影通行证: 用户输入: 17.50 拍摄 2 的 3 张门票 我如何提取购买的门票数量,知道选择的电影并从输入的字符串中合计成本。

任何帮助是极大的赞赏。

                 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]);

           }
4

2 回答 2

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;
}
于 2012-11-10T22:48:17.750 回答
1

似乎正则表达式是这项工作的最佳工具(无论它看起来多么糟糕):

(\\d+) tickets for (.*) at (\\d{1,2})[.:](\\d{2})
于 2012-11-10T22:47:38.203 回答