计算Char值

时间:2017-02-26 00:31:50

标签: java

例如:我想制作一个简单的Scrabble游戏。我输入一个单词,我会分开每个字符并给它一个值。我想要计算这个值,但它只是不会起作用。在结果中,它显示每个角色都得到了它们的价值,但不会计算在内。

这是我的代码:

`public class StringBodyBuilder {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    char character;
    String word;
    int wordValue =0;

    System.out.print("Give a word: ");
    word = scanner.nextLine();

    for (int i = 0; i <word.length() ; i++) {
        character = word.toLowerCase().charAt(i);
        wordValue =+ character;

        switch (character) {
            case 'a' :
            case 'e' :
            case 'i' :
            case 'n' :
            case 'o' : System.out.println(1);
                break;
            case 'd' :
            case 'r' :
            case 's' :
            case 't' : System.out.println(2);
                break;
            case 'b' :
            case 'g' :
            case 'k' :
            case 'l' :
            case 'm' :
            case 'p' : System.out.println(3);
                break;
            case 'f' :
            case 'h' :
            case 'j' :
            case 'u' :
            case 'v' : System.out.println(4);
                break;
            case 'c' :
            case 'w' : System.out.println(5);
                break;
            case 'x' :
            case 'y' : System.out.println(8);
                break;
            case 'q' : System.out.println(10);
                break;
            case ' ' : System.out.println(0);
                break;
        }

        System.out.println(wordValue);
    }
}

结果: 说一句话:牛 五 99 1 111 五 119

1 个答案:

答案 0 :(得分:0)

您只打印字母的值,但实际上并未使用它们。

例如,您可以保存以下值:

int value = 0;

switch (character) {
    case 'a' :
    case 'e' :
    case 'i' :
    case 'n' :
    case 'o' : 
        value = 1;
        break;
    case 'd' :
    case 'r' :
    case 's' :
    case 't' : 
        value = 2;
        break;
    ...

并在切换后:

wordValue += value;   // += and not =+
System.out.println(wordValue);