import java.util.*;
import java.util.Arrays;
public class ScoreCalc {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int[] score = {1,3,3,2,1,4,2,4,1,8,5,1,3,1,1,3,10,1,1,1,1,4,4,8,4,10};
System.out.println("Enter word: ");
String word = in.nextLine();
int totalScore = 0;
char[] wordArray = word.toCharArray();
for(int i=0; i<wordArray.length; i++) {
System.out.println(wordArray[i]);
int index = Arrays.asList(alphabet).indexOf(wordArray[i]);
System.out.println(index);
totalScore = totalScore + score[index];
}
System.out.println(totalScore);
}
}
最佳答案
indexOf(wordArray[i])
返回-1。我怀疑这是由于大写字母和/或特殊字符引起的。首先执行此操作并添加错误检查:
word.toLowerCase().toCharArray()
String alphabet = "abcdefghijklmnopqrstuvwxyz";
int index = alphabet.indexOf(wordArray[i]);
if(index == -1) {
// handle the special character
} else {
totalScore += score[index];
}
https://stackoverflow.com/questions/11443800/