Java计算文本文件中的大写字母

Java计算文本文件中的大写字母,java,java.util.scanner,Java,Java.util.scanner,我正在使用java创建一个文本分析器,我正在尝试搜索文本文档,并计算有多少个大写字母 public static void main(String[] args) { Scanner sc = new Scanner(CapitalCount.class.getResourceAsStream("test.txt")); String s = sc.nextLine(); int upperCaseCount = 0; int linecount = 0;

我正在使用java创建一个文本分析器,我正在尝试搜索文本文档,并计算有多少个大写字母

public static void main(String[] args) {
    Scanner sc = new Scanner(CapitalCount.class.getResourceAsStream("test.txt"));
    String s = sc.nextLine();
    int upperCaseCount = 0;
    int linecount = 0;

    while (sc.hasNextLine()) {
        sc.nextLine();
        linecount++;
    }

    for (int i = 0; i < s.length(); i++) {
        for (char c = 'A'; c <= 'Z'; c++) {
            if (s.charAt(i) == c) {
                upperCaseCount++;

            }
        }
    }
    System.out.println(upperCaseCount + "");
}
}
publicstaticvoidmain(字符串[]args){
Scanner sc=新的扫描仪(CapitalCount.class.getResourceAsStream(“test.txt”);
字符串s=sc.nextLine();
int upperCaseCount=0;
int linecount=0;
while(sc.hasNextLine()){
sc.nextLine();
linecount++;
}
对于(int i=0;i扫描每个字符
  • 检查字符是否在大写字母范围内。
  • 扫描文件不需要CapitalCount类

    以下是我的工作方案:

    public static void main(String[] args) {
        Scanner sc = null;
        try {
            sc = new Scanner(new File("test.txt"));
            int count = 0;
            while(sc.hasNext()){
                String line = sc.nextLine();
                for(int i = 0 ; i < line.length(); i++){
                    if(line.charAt(i) >= 'A' && line.charAt(i) <= 'Z'){
                        count ++;
                    }
                }
            }
            System.out.println("The number of capital letters are : "+count);
    
        } catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        }
        finally{
            sc.close();
        }
    
    }
    
    publicstaticvoidmain(字符串[]args){
    扫描仪sc=空;
    试一试{
    sc=新扫描仪(新文件(“test.txt”);
    整数计数=0;
    while(sc.hasNext()){
    字符串行=sc.nextLine();
    对于(int i=0;i如果(line.charAt(i)>='A'&&line.charAt(i),则内部循环不必检查字母i是否为大写字母。
    改变

    for(char c='A';c='A'和s.charAt(i)您没有尝试调用“.next(Pattern Pattern)”方法,其中Pattern用于大写字母?
    
    因此,在循环之前,您应该使用
    Character.isUpperCase()
    方法,而不是手动操作

    public static void main(String[] args) {
        try {
            Scanner sc = new Scanner(new File("test.txt"));
            int capitalCount = 0;
            int lineCount = 0;
            while(sc.hasNext()){
                lineCount++;
                String line = sc.nextLine();
                for(int i = 0 ; i < line.length(); i++){
                    if(Character.isUpperCase(line.charAt(i))) {
                        capitalCount++;
                    }
                }
            }
            System.out.println("Number of lines: "+lineCount);
            System.out.println("Number of capital letters: "+capitalCount);
        } 
        catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        }
    
    }
    
    publicstaticvoidmain(字符串[]args){
    试一试{
    Scanner sc=新扫描仪(新文件(“test.txt”);
    int capitalCount=0;
    int lineCount=0;
    while(sc.hasNext()){
    lineCount++;
    字符串行=sc.nextLine();
    对于(int i=0;i
    尝试以下代码:

    public static void main(String[] args) {
     Scanner sc = new Scanner(CapitalCount.class.getResourceAsStream("test.txt"));
     int upperCaseCount = 0;
     int linecount = 0;
     String lineInput = null;
    
     while (sc.hasNextLine()) {
      lineInput = sc.nextLine();
      linecount = lineInput .length();
      for(int i=0; i < linecount; i++)
          if (Character.isUpperCase(lineInput.charAt(i))) upperCaseCount++;
     }
     System.out.println(upperCaseCount + "");
    }
    
    publicstaticvoidmain(字符串[]args){
    Scanner sc=新的扫描仪(CapitalCount.class.getResourceAsStream(“test.txt”);
    int upperCaseCount=0;
    int linecount=0;
    字符串lineInput=null;
    while(sc.hasNextLine()){
    lineInput=sc.nextLine();
    linecount=lineInput.length();
    对于(int i=0;i
    请为您的输入文档和您期望的相关输出提供一个示例。您是否可以编辑您的问题并解释问题所在。它是否出错,或者没有产生预期的输出?好的,关闭
    扫描仪
    资源,或者使用try with resources。以前,我只关心sol但现在我做到了@Tom。
    public static void main(String[] args) {
        try {
            Scanner sc = new Scanner(new File("test.txt"));
            int capitalCount = 0;
            int lineCount = 0;
            while(sc.hasNext()){
                lineCount++;
                String line = sc.nextLine();
                for(int i = 0 ; i < line.length(); i++){
                    if(Character.isUpperCase(line.charAt(i))) {
                        capitalCount++;
                    }
                }
            }
            System.out.println("Number of lines: "+lineCount);
            System.out.println("Number of capital letters: "+capitalCount);
        } 
        catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        }
    
    }
    
    public static void main(String[] args) {
     Scanner sc = new Scanner(CapitalCount.class.getResourceAsStream("test.txt"));
     int upperCaseCount = 0;
     int linecount = 0;
     String lineInput = null;
    
     while (sc.hasNextLine()) {
      lineInput = sc.nextLine();
      linecount = lineInput .length();
      for(int i=0; i < linecount; i++)
          if (Character.isUpperCase(lineInput.charAt(i))) upperCaseCount++;
     }
     System.out.println(upperCaseCount + "");
    }