Java - 为输入字符串分配数字和单词

时间:2017-04-20 21:43:09

标签: java

我是Java的新手,我正在尝试创建一个带有字符串的程序,例如' asdfg',以及打印单词和与这些字母相关联的总数。

所以' a'将是' apple'它的分配号码是10,' s'将是菠菜,其分配的数字是5,' d'将会是“狗”#39;它的指定号码是15,' f'将是青蛙'青蛙'它的分配号码是20和'将是' goat'它的分配数量是25.输出看起来像苹果菠菜狗青蛙山羊75'。

到目前为止我的代码是

import java.util.Scanner;
import java.util.ArrayList;
import java.io.*;


public class PizzaTwo {
    public static void main(String[] args) throws Exception {
        Scanner scan = new Scanner(System.in);

        System.out.println("Please enter the details of your order");
        String myList = scan.nextLine();


        for (int i = 0; i < myList.length(); i++) {
            int letNum = 0;
            switch (myList.charAt(i)) {
                case 'a':
                    System.out.println("apple" + letNum);
                    letNum += 10;
                    break;
                case 's':
                    System.out.println("spinach" + letNum);
                    letNum += 5;
                    break;
                case 'd':
                    System.out.println("dog" + letNum);
                    letNum += 15;
                    break;
                case 'f':
                    System.out.println("frog" + letNum);
                    letNum += 20;
                    break;
                case 'g':
                    System.out.println("goat", letNum);
                    letNum += 25;
                    break;
                default:
                    System.out.println("Nothing..");
                    break;
            }
        }


    }
}

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

看起来您希望数字仅在所有单词打印后出现,从您的描述“苹果菠菜狗青蛙山羊75”,但您的代码看起来像是试图将数字附加到每个单词的末尾。

假设您希望输出与样本输出相似,请不要尝试在每个单词后打印数字,而是在打印完所有单词后打印您一直使用的变量在代码中累积每个字母值'letNum'。
另外,每次处理新信时都不要重置'letNum'。

答案 1 :(得分:0)

取2个单独的变量,1个字符串和另一个数字。每次与现有字符串连接,意味着像String s =&#34;&#34 ;; int n = 0; S + =&#34;苹果&#34 ;;的n + = 10; S + =&#34;蛙&#34 ;; .... 现在当循环完成时打印字符串然后是数字。

答案 2 :(得分:0)

首先,我建议你为变量使用更好的名称。

您正在重置每个循环中的“letNum”,然后我将其移出循环。

我建议您阅读StringStringBuilder。 String对象是不可变的,所以为了创建更多变量来连接“flavors”,我使用了可变的StringBuilder。

  

字符串是不变的;它们的值在创建后无法更改

     

StringBuilder上的主要操作是append和insert方法,它们被重载以接受任何类型的数据

import java.util.Scanner;

public class PizzaTwo {

    public static void main(String[] args) throws Exception {
        Scanner scan = new Scanner(System.in);

        System.out.println("Please enter the details of your order");
        String flavors = scan.nextLine();

        int price = 0;
        StringBuilder order = new StringBuilder();

        for (int i = 0; i < flavors.length(); i++) {
            switch (flavors.charAt(i)) {
            case 'a':
                order.append("apple ");
                price += 10;
                break;
            case 's':
                order.append("spinach ");
                price += 5;
                break;
            case 'd':
                order.append("dog ");
                price += 15;
                break;
            case 'f':
                order.append("frog ");
                price += 20;
                break;
            case 'g':
                order.append("goat ");
                price += 25;
                break;
            default:
                order.append("No flavor added ");
                break;
            }
        }

        System.out.println(order.append(price));
    }
}