首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拼字ACSL java编码

拼字ACSL java编码
EN

Stack Overflow用户
提问于 2013-12-16 23:31:14
回答 1查看 994关注 0票数 0

所以发生的是,这段代码,这段代码太长了。有什么方法可以使这段代码变得更简单吗?我是一个新手,一个朋友问我,他没有任何帐户问我,所以我问我的,我真的很擅长编码,所以请你帮忙!(我欠他的)

代码语言:javascript
复制
Scanner input = new Scanner(System.in);

    System.out.println("Enter the word:");
    String firstLetter = input.next();
    String secondLetter = input.next();
    String thirdLetter = input.next();;
    String lastLetter = input.next();;
    int valOfFirstLetter = 0;
    int valOfSecondLetter = 0;
    int valOfThirdLetter = 0;
    int valOfLastLetter = 0;



    if (firstLetter.equals("a"))
        valOfFirstLetter = valOfFirstLetter + 1;
    else if (firstLetter.equals("e"))
        valOfFirstLetter = valOfFirstLetter + 1;
    else if (firstLetter.equals("d"))
        valOfFirstLetter = valOfFirstLetter + 2;        
    else if (firstLetter.equals("r"))
        valOfFirstLetter = valOfFirstLetter + 2;
    else if (firstLetter.equals("b"))
        valOfFirstLetter = valOfFirstLetter + 3;
    else if (firstLetter.equals("m"))
        valOfFirstLetter = valOfFirstLetter + 3;
    else if (firstLetter.equals("v"))
        valOfFirstLetter = valOfFirstLetter + 4;
    else if (firstLetter.equals("y"))
        valOfFirstLetter = valOfFirstLetter + 4;
    else if (firstLetter.equals("j"))
        valOfFirstLetter = valOfFirstLetter + 8;
    else if (firstLetter.equals("x"))
        valOfFirstLetter = valOfFirstLetter + 8;
    else
        System.out.println("NOOOOOOO");

    System.out.println(valOfFirstLetter);


    if (secondLetter.equals("a"))
        valOfSecondLetter = valOfSecondLetter + 1;
    else if (secondLetter.equals("e"))
        valOfSecondLetter = valOfSecondLetter + 1;
    else if (secondLetter.equals("d"))
        valOfSecondLetter = valOfSecondLetter + 2;      
    else if (secondLetter.equals("r"))
        valOfSecondLetter = valOfSecondLetter + 2;
    else if (secondLetter.equals("b"))
        valOfSecondLetter = valOfSecondLetter + 3;
    else if (secondLetter.equals("m"))
        valOfSecondLetter = valOfSecondLetter + 3;
    else if (secondLetter.equals("v"))
        valOfSecondLetter = valOfSecondLetter + 4;
    else if (secondLetter.equals("y"))
        valOfSecondLetter = valOfSecondLetter + 4;
    else if (secondLetter.equals("j"))
        valOfSecondLetter = valOfSecondLetter + 8;
    else if (secondLetter.equals("x"))
        valOfSecondLetter = valOfSecondLetter + 8;
    else
        System.out.println("NOOOOOOO");

    System.out.println(valOfSecondLetter);


    if (thirdLetter.equals("a"))
        valOfThirdLetter = valOfThirdLetter + 1;
    else if (thirdLetter.equals("e"))
        valOfThirdLetter = valOfThirdLetter + 1;
    else if (thirdLetter.equals("d"))
        valOfThirdLetter = valOfThirdLetter + 2;        
    else if (thirdLetter.equals("r"))
        valOfThirdLetter = valOfThirdLetter + 2;
    else if (thirdLetter.equals("b"))
        valOfThirdLetter = valOfThirdLetter + 3;
    else if (thirdLetter.equals("m"))
        valOfThirdLetter = valOfThirdLetter + 3;
    else if (thirdLetter.equals("v"))
        valOfThirdLetter = valOfThirdLetter + 4;
    else if (thirdLetter.equals("y"))
        valOfThirdLetter = valOfThirdLetter + 4;
    else if (thirdLetter.equals("j"))
        valOfThirdLetter = valOfThirdLetter + 8;
    else if (thirdLetter.equals("x"))
        valOfThirdLetter = valOfThirdLetter + 8;
    else
        System.out.println("NOOOOOOO");

    System.out.println(valOfThirdLetter);

    if (lastLetter.equals("a"))
        valOfLastLetter = valOfLastLetter + 1;
    else if (lastLetter.equals("e"))
        valOfLastLetter = valOfLastLetter + 1;
    else if (lastLetter.equals("d"))
        valOfLastLetter = valOfLastLetter + 2;      
    else if (lastLetter.equals("r"))
        valOfLastLetter = valOfLastLetter + 2;
    else if (lastLetter.equals("b"))
        valOfLastLetter = valOfLastLetter + 3;
    else if (lastLetter.equals("m"))
        valOfLastLetter = valOfLastLetter + 3;
    else if (lastLetter.equals("v"))
        valOfLastLetter = valOfLastLetter + 4;
    else if (lastLetter.equals("y"))
        valOfLastLetter = valOfLastLetter + 4;
    else if (lastLetter.equals("j"))
        valOfLastLetter = valOfLastLetter + 8;
    else if (lastLetter.equals("x"))
        valOfLastLetter = valOfLastLetter + 8;
    else
        System.out.println("NOOOOOOO");

    System.out.println(valOfSecondLetter);
    System.out.println(firstLetter + secondLetter + thirdLetter + lastLetter);

所以这个程序所做的是,如果你输入一个单词,只有四个字母单词(来自ACSL),只有a,e=1点d,r=2点b,m=3点v,y=4点j,x=8点。如果我输入j和空格,它将打印我们的以下内容

代码语言:javascript
复制
8
1
4
1
java

如果你打的不是这些字母,它会打印“NOOOOOO”(我不知道他为什么这么做),我也不知道怎样才能把它变成更简单的形式。我认为,做一个字符串,读每一个字母,并让它在一个,如果是其他语句。这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-18 08:57:43

我认为,做一个字符串,读每一个字母,并让它在一个,如果是其他语句。这有可能吗?

绝对一点儿没错。

您可以使用nextLine()读取整个单词字符串,用toCharArray()拆分成炭化,使用用于循环迭代字符,并使用开关语句测试字符的值,其重复方式略少于使用if/用于循环

代码语言:javascript
复制
Scanner input = new Scanner(System.in);
System.out.println("Enter the word:");
String word = input.nextLine();
int wordValue = 0;

for (char c : word.toCharArray()) {
    int val;
    switch (c) {
    case 'a':
    case 'e':
        val = 1;
        break;
    case 'd':
    case 'r':
        val = 2;
        break;
    case 'b':
    case 'm':
        val = 3;
        break;
    case 'v':
    case 'y':
        val = 4;
        break;
    case 'j':
    case 'x':
        val = 8;
        break;
    default:
        System.out.println("NOOOOOOO");
        return;
    }

    wordValue += val;
}

System.out.println(wordValue);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20623108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档