首页 > 解决方案 > 将语言区域设置到数组中以在循环中使用

问题描述

我正在尝试读取目录中的每个文件,使用 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());
        }
    }

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

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

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

方法的输入类型如下:

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

提前谢谢了

标签: javaarrayslocale

解决方案


推荐阅读