基本的Java读取字符串列表等功能

件:

我想在这里学习java所以总的新手。比方说,例如,我们有一个字符串

String file = "1,Cheese Burger,50;2,Pizza,70;3,Coke,20;4,Beer,20";

我需要做的就是创建一个基于控制台应用程序列表中的所有这些项目,然后添加多个项目,显示的价格。

这是我已经尝试了代码。我可以添加数字,我只是不知道如何从用户到一个变量取输入。

例如,当我运行控制台应用程序我想用户输入的,因为他要多汉堡包。然后,他做他选择号码3。

请温柔

import java.util.Scanner;
import java.util.*;
public class Test {
    public static void main(String[] args) {
        String file = "1,Cheese Burger,50;2,Pizza,70;3,Coke,20;4,Beer,20";
        //split
        String [] elements = file.split(";");
        //convert string to list of string
        List<String> fixedLengthList = Arrays.asList(elements);
        //copy fixed to arraylist
        ArrayList<String> listOfString = new ArrayList<String>(fixedLengthList);

       int  p = 0;
        while (p != 5) {
            Scanner sc = new Scanner(System.in);
            for (String line : listOfString
            ) {
                System.out.println("1. Cheese burger 50");
                System.out.println("2. Pizza 80");
                System.out.println("3. View your bill");
                sc.nextInt();
                String[] items = line.split(",");
                String itemPriceString = items[2];
                double itemPrice = Double.parseDouble(itemPriceString);
                double burger = itemPrice;
                System.out.println(burger+burger);

            }
        }

   }
}
J4BEZ:

好了,我真的很抱歉,我不完全理解的问题,但我想推荐一些提示,在捆绑来管理类似的变量。

类似于C的数据结构++,如对和TUPE,Java有声明“级”的方法

 class Menu {
int order;       //for food order number
 String name;    // for food name,
int price;       //for food price

Menu(String name, int price){
  //following the 'Constructor' We can put data
  this.name = name;
  this.price = price;
  }

}

那么,我们如何使用它?

通过以这种方式使用名单,

       String file = "1,Cheese Burger,50;2,Pizza,70;3,Coke,20;4,Beer,20";

    //split
    String [] elements = file.split(";");

    List<Menu> foodMenu = new ArrayList<Menu>();        //init

    for(int i = 0; i< 4; i++) { //4 foods
        String [] line = elements[i].split(",");

        foodMenu.add(new Menu(Integer.parseInt(line[0]), //food order number
                        line[1],                         //food name
                        Integer.parseInt(line[2]))       //food price
                );
    }
   /*foodMenu[0] = 1, Cheese Burger, 50
    foodMenu[1] = 2, Pizza, 70 
    foodMenu[2] = 3, Coke, 20
    foodMenu[3] = 4, Beer, 20

    if you want to access a data you can use like this
    foodMenu.get(index).order / name / price ; */

现在,让我们尝试通过这一新的存储系统,让客户选择买什么,并支付

import java.util.Scanner;
import java.util.*;

class Menu { 
    int order;      //for food order number
    String name;    // for food name
    int price;      //for food price

    Menu(int order, String name, int price){
        //following the 'Constructor' We can put data
        this.order = order;
        this.name = name;
        this.price = price;
    }

}


public class StackOver {
    public static void main(String[] args) {
        String file = "1,Cheese Burger,50;2,Pizza,70;3,Coke,20;4,Beer,20";

        //split
        String [] elements = file.split(";");

        List<Menu> foodMenu = new ArrayList<Menu>();        //init

        for(int i = 0; i< 4; i++) { //4 foods
            String [] line = elements[i].split(",");

            foodMenu.add(new Menu(Integer.parseInt(line[0]), //food order number
                            line[1],                         //food name
                            Integer.parseInt(line[2]))       //food price
                    );
        }
       //foodMenu[0] = 1, Cheese Burger, 50
      //foodMenu[1] = 2, Pizza, 70 
      //foodMenu[2] = 3, Coke, 20
      //foodMenu[3] = 4, Beer, 20

      //if you want to access a data you can use like this
      // foodMenu.get(index).order / name / price ;

   Scanner sc = new Scanner(System.in);


    int price = 0; //for purchase price
    int  p = 0; //Great Init for avoiding NullPointerException
    while (p != 5) {
            System.out.println("Please Input number 1 to 5 to Order food or purchase");
            System.out.println("1. Cheese burger 50$");
            System.out.println("2. Pizza 80$");
            System.out.println("3. Coke 20$");
            System.out.println("4. Beer 20$");
            System.out.println("5. Beer 20$");

            p = sc.nextInt();   //customer will choose number

            if(p!=5) {  
                price += foodMenu.get(p-1).price;
                //add price of selected food!
            }

        }
    System.out.println("Ok, The price is "+price+"$ in total");
    System.out.println("Have a nice day!");
    }
}

在这里输入图像描述 ^ ExampleResult

我希望这个答案可以帮助你一点点,如果它是很难理解,请发表评论!有一个和平的一天!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章