我的项目的文本文件中有一系列单词。我试图区分文件中的大写字母,并且只打印出它可以找到的最大数字。例如输入: 卷潮卷 我的输出:2 R
我认为有代码可以找到最大计数或其他东西,但我现在迷路了。
这是我迄今为止的代码:
import java.io.*;
import java.util.Scanner;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class letters {
public static void main(String[] args) throws FileNotFoundException {
FileInputStream fis = new FileInputStream("input.txt");
Scanner scanner = new Scanner(fis);
String str = scanner.nextLine();
System.out.println(str);
int upperCaseCounter = 0;
int upperCase[] = new int[26];
while (scanner.hasNextLine()) {
String s = scanner.nextLine();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (Character.isAlphabetic(ch)) {
if (Character.isUpperCase(ch)) {
upperCase[ch - 'A']++;
System.out.println(ch + " : " + upperCase[ch - 'A']);
}
}
}
}
}
}
我的输出给了我一些类似的东西:
R : 10
O : 6
L : 7
L : 8
R : 11
T : 5
R : 12
我只需要打印 R: 12
你如何做到这一点。任何帮助将不胜感激。谢谢! 我对这个网站上的缩进不熟悉,并且想尽快...
最佳答案
您可以使用Arrays#sort方法查找数组中的最大或最小数。
Arrays.sort(upperCase);
int maxIndex = upperCase.length-1;
System.out.println("Max element is:"+(char)upperCase[maxIndex])+":"+upperCase[maxIndex]);
sort()
方法按升序对数组进行排序。然后数组的第一个元素是 min
数字,数组的最后一个元素是 max
>。
注意:上面的代码应该在 while 循环之后,以便它只打印一次,而不是像您的情况那样打印多次。
关于java - 如何打印数组列表中的最大数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605434/