在Java中,如何循环遍历单词中的每个字符,然后识别该字符获得的点并继续为该单词添加点

问题描述

这是我无法包扎的作业。这是我对Java的第一个真实看法,到目前为止,我发现它相当困难。我已经附上了作业PDF,这是我未成功完成的 pointsProblem 部分。

到目前为止,我有:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
import java.util.HashMap;

public class WordGames {

    static HashMap<Character,Integer> valueOfCharacter;
    static final String DICTIONARY = "dictionary.txt";
    static int i;
    static int wordCount;
    static String line;
    static String substringWordList;
    static String[] randomSubstringResults = new String[23];
    static FileReader listOfWordsFile;
    static Scanner substringProblemInput;
    static Scanner wordListFileScanner;

    static {

        substringProblemInput = new Scanner(System.in);
        try {
            listOfWordsFile = new FileReader(DICTIONARY);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        wordListFileScanner = new Scanner(listOfWordsFile);

        while (wordListFileScanner.hasNextLine()) {
            line = wordListFileScanner.nextLine();
            randomSubstringResults[wordCount] = line;
            wordCount++;
        }
    }

    static {

        valueOfCharacter = new HashMap<Character,Integer>();

        valueOfCharacter.put('l',1);
        valueOfCharacter.put('e',1);
        valueOfCharacter.put('n',1);
        valueOfCharacter.put('i',1);
        valueOfCharacter.put('o',1);
        valueOfCharacter.put('r',1);
        valueOfCharacter.put('t',1);
        valueOfCharacter.put('s',1);
        valueOfCharacter.put('a',1);
        valueOfCharacter.put('u',1);
        valueOfCharacter.put('d',2);
        valueOfCharacter.put('g',2);
        valueOfCharacter.put('b',3);
        valueOfCharacter.put('c',3);
        valueOfCharacter.put('m',3);
        valueOfCharacter.put('p',3);
        valueOfCharacter.put('f',4);
        valueOfCharacter.put('h',4);
        valueOfCharacter.put('v',4);
        valueOfCharacter.put('w',4);
        valueOfCharacter.put('y',4);
        valueOfCharacter.put('k',5);
        valueOfCharacter.put('j',8);
        valueOfCharacter.put('x',8);
        valueOfCharacter.put('q',10);
        valueOfCharacter.put('z',10);

    }

    static void gameMenuSelection() throws FileNotFoundException {

        int getSelectionOption;

        Scanner gameMenuSelectionInput = new Scanner(System.in);

        System.out.println("Welcome to the Word Games program menu.");
        System.out.println("Select from one of the following options.");
        System.out.println("1. Substring problem.");
        System.out.println("2. Points problem.");
        System.out.println("3. Exit.");
        System.out.print("Enter your selection: ");

        getSelectionOption = gameMenuSelectionInput.nextInt();
            switch (getSelectionOption) {
                case 1:
                    substringProblemGame();
                    break;
                case 2:
                    pointsProblemGame();
                    break;
                case 3:
                    System.out.println("\n" + "Goodbye!");
                    break;
                default:
                    System.out.println("Invalid option. Try again.");
                    break;
            }
        }

    static void substringProblemGame() throws FileNotFoundException {

        String randomSubstringInput;
        String wordHasInfix = " - infix";
        String wordHasPrefix = " - prefix";
        String wordHasSuffix = " - suffix";
        String nothingIsFound = " - not found";

        System.out.println("\n" + "Substring problem.");

        System.out.print("Enter a substring: ");
        randomSubstringInput = substringProblemInput.next();


        for (i = 0; i < wordCount; i++) {

            substringWordList = randomSubstringResults[i];
            boolean found = false;

            if (randomSubstringResults[i].startsWith(randomSubstringInput)) {
                substringWordList = substringWordList + wordHasPrefix;
                found = true;
            }
            if (randomSubstringResults[i].endsWith(randomSubstringInput)) {
                substringWordList = substringWordList + wordHasSuffix;
                found = true;
            }
            if (randomSubstringResults[i].contains(randomSubstringInput)) {
                substringWordList = substringWordList + wordHasInfix;
                found = true;
            }
            if (!found) {
                System.out.println(substringWordList + nothingIsFound);
            } else {
                System.out.println(substringWordList);
            }
        }
        System.out.println();
        gameMenuSelection();
    }

    static void pointsProblemGame() throws FileNotFoundException {


        System.out.println("Points problem.");

        }



    public static void main(String[] args) throws FileNotFoundException {


        gameMenuSelection();

    }
}

我尝试实现HashMap,但不知道如何使它工作。我尝试从geeksforgeeks执行此操作,但仍然失败。我可能只是没用了。

任何帮助将不胜感激。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)