我们可以在将其加载到 Arraylist 对象时限制特定的字符串大小写吗?

Can we restrict particular string case while loading it to Arraylist object?

一个由很多词组成的文件,其中一些词纯在'UPPERCASE'中,一些词纯在'lowercase'中,其余词在'miXeDCasE'中? 我想将这些单词加载到 Arraylist 对象,但它不允许加载大写单词。

我们可以用 Java 泛型实现吗?怎么样?

例如:借助 Java 泛型的有界类型概念,我们可以实现只能将数字插入 Arraylist 对象下方。

> ArrayList <T extends Number> al = new ArrayList<T extends Number>();

我不认为泛型会为您的需求提供此类功能,但如果您不强制使用泛型,则可以通过以下逻辑轻松实现此目的

String word = "SomeWordFromYourFile";
String wordToUpperCase = word.toUpperCase();
if(!wordToUpperCase.equals(word)) {
     list.add(word);
}

泛型是一个 NO。但正则表达式是处理此类场景的最佳工具。

演示: 考虑一个包含单词的 String 数组。稍后在您的代码中,您可以将此数组替换为您读入的文件内容。

String[] words = { "UPPER", "lower", "LowER", "don", "shawn", "DUDE", "BAGGAGE", "buddy", "FrIeNd", "NeRd",
                "geek", "FREAK" };

现在,让我们过滤这个数组并跳过大写单词并将其余的添加到 ArrayList

List<String> filteredWords = new ArrayList<>();
for(String eachWord : words){
          //Matches one or more occurrence
            if(!eachWord.matches("[A-Z]+")){
                filteredWords.add(eachWord);
            }else{
                continue;
            }
        }
//Print the resulting array
System.out.println(Arrays.toString(filteredWords.toArray()));

生成的输出将是:

[lower, LowER, don, shawn, buddy, FrIeNd, NeRd, geek]

我希望这就是您想要实现的目标。