将语言区域设置实现为数组以在循环中使用

时间:2019-04-01 13:50:45

标签: java arrays locale

我正在尝试读取目录中的每个文件,使用java util.locale进行清理,然后写入新目录。读写方法有效,Locale.SPANISH可能是我在其他帖子中所读到的问题。

我遍历了java.util.locale中的可用语言,西班牙语在那里。

首先,出现数组问题:以下代码摘录是将Locale。(LANGUAGE)输入数组的很长的路要走。这似乎很好。但是,我不明白为什么“短”方法似乎不起作用。

String[] languageLocale = new String[fileArray.length];

languageLocale[0] = "Locale.ENGLISH";

languageLocale[1] = "Locale.FRENCH";

languageLocale[2] = "Locale.GERMAN";

languageLocale[3] = "Locale.ITALIAN";

languageLocale[4] = "Locale.SPANISH";

简而言之:

String[] languageLocale = new String[("Locale.ENGLISH" , "Locale.FRENCH" , "Locale.GERMAN" , "Locale.ITALIAN" , "Locale.SPANISH")];

我需要将Locale。(langauge)输入一个字符串,以便可以在以下方式中调用它们:

File file = new File("\\LanguageGuessing5.0\\Learning\\");
File[] fileArray = file.listFiles();

ArrayList<String> words = new ArrayList<String>();

    for (int i = 0; i < fileArray.length; i++) {
        if (fileArray[i].isFile()) {
            if (fileArray[i].isHidden()) {
                continue;
            } else {
                String content = readUTF8File("\\LanguageGuessing5.0\\Learning\\"+fileArray[i].getName());

                words = extractWords(content, languageLocale[i]);

                outputWordsToUTF8File("\\LanguageGuessing5.0\\Model\\"+ fileArray[i].getName() + "out.txt", words);
            }
        } else if (fileArray[i].isDirectory()) {
            System.out.println("Directory " + fileArray[i].getName());
        }
    }

以下方法调用:     单词= extractWords(content,languageLocale [i]); 还出现以下错误:

CleaningText(类名)类型的方法extractWords(String,Locale)不适用于参数(String,String)

我的理解是,虽然array参数不是语言环境,但字符串包含正确的文本以使其有效。我显然不正确,我希望有人可以解释它的工作原理。

有关上下文的方法输入类型如下:

public static String readUTF8File(String filePath)
public static ArrayList extractWords(String inputText, Locale currentLocale)
public static void outputWordsToUTF8File(String filePath, ArrayList wordList)

非常感谢

0 个答案:

没有答案