我们可以在将其加载到 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]
我希望这就是您想要实现的目标。
一个由很多词组成的文件,其中一些词纯在'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]
我希望这就是您想要实现的目标。