我想访问类newrepeatedcount中的类Totalnoofwords
我想打印Totalnoofwords类的“ a”

System.out.println("( "+file1.getName() +" )-" +"Total words counted:"+total);


在newrepeatedcount类中。

所以我可以同时运行两个代码以获取System.out.println("( "+file1.getName() +" )-" +" Total no of words=" + a +"Total repeated words counted:"+total);

这是我想要的1个输出的代码段
 (filenameBlog 39.txt)-单词总数= 83,重复单词总数:4

任何建议欢迎。
我是Java的初学者。
这是我下面的两个班级代码。

Totalnoofwords.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import org.apache.commons.io.FileUtils;

  public class Totalnoofwords
  {
   public static void main(String[] args)
  {
    FilenameFilter filter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.endsWith(".txt");
        }
    };

    File folder = new File("E:\\testfolder");
    File[] listOfFiles = folder.listFiles(filter);

    for (int i = 0; i < listOfFiles.length; i++) {
        File file1 = listOfFiles[i];
        try {
    String content = FileUtils.readFileToString(file1);

    } catch (IOException e) {
    e.printStackTrace();
        }
                BufferedReader ins = null;
        try {
            ins = new BufferedReader (
                    new InputStreamReader(
                        new FileInputStream(file1)));
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        }

        String line = "", str = "";
        int a = 0;
        int b = 0;
        try {
                    while ((line = ins.readLine()) != null) {
    str += line + " ";
    b++;
    }
        } catch (IOException e) {
    e.printStackTrace();
    }
        StringTokenizer st = new StringTokenizer(str);
        while (st.hasMoreTokens()) {
        String s = st.nextToken();
        a++;
        }
               System.out.println(" Total no of words=" + a );
    }
        }
      }


newrepeatedcount.java

package ramki;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
public class newrepeatedcount  {
public static void main(String[] args){

FilenameFilter filter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.endsWith(".txt");
        }
    };
    File folder = new File("E:\\testfolder\\");
    File[] listOfFiles = folder.listFiles(filter);
for (int i = 0; i < listOfFiles.length; i++) {
        File file1 = listOfFiles[i];
        try {
                String content = FileUtils.readFileToString(file1);
            } catch (IOException e) {
                e.printStackTrace();
            }
        BufferedReader ins = null;
        try {
                    ins = new BufferedReader ( new InputStreamReader(new FileInputStream(file1)));
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    String st = null;
try {
    st = IOUtils.toString(ins);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
 //split text to array of words
 String[] words=st.split("\\s");
//frequency array
 int[] fr=new int[words.length];
//init frequency array
 for(int i1=0;i1<fr.length;i1++)
   fr[i1]=-1;
 //count words frequency
 for(int i1=0;i1<words.length;i1++){
   for(int j=0;j<words.length;j++){
     if(words[i1].equals(words[j]))
       {
         fr[i1]++;

            }
        }
 }
 //clean duplicates
   for(int i1=0;i1<words.length;i1++){
     for(int j=0;j<words.length;j++){
       if(words[i1].equals(words[j]))
       {
         if(i1!=j) words[i1]="";
       }
 }
 }
//show the output
int total=0;
//System.out.println("Duplicate words:");
for(int i1=0;i1<words.length;i1++){
if(words[i1]!=""){
//System.out.println(words[i1]+"="+fr[i1]);
total+=fr[i1];
}
}
//System.out.println("Total words counted: "+total);
//System.out.println("Total no of repeated words : "+total+" ");
System.out.println("( "+file1.getName() +" )-" +"Total repeated words counted:"+total);
}

}}


我试图将两个代码都放在一个类中
但其中一个变量都不起作用
System.out.println("( "+file1.getName() +" )-" +" Total no of words=" + a +"Total repeated words counted:"+total);

当我运行时,“ a”或“ total”都不起作用。(反之亦然)如果我更改代码(变量)顺序。

有人告诉我如何同时获取变量的输出吗?
:)

这是我的更新代码。

 package ramki;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.StringTokenizer;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 public class newrepeatedcount  {
 public static void main(String[] args){
 FilenameFilter filter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.endsWith(".txt");
        }
    };
    File folder = new File("E:\\testfolder\\");
    File[] listOfFiles = folder.listFiles(filter);
for (int i = 0; i < listOfFiles.length; i++) {
        File file1 = listOfFiles[i];
        try {
                String content = FileUtils.readFileToString(file1);
            } catch (IOException e) {
                e.printStackTrace();
            }
        BufferedReader ins = null;
        try {
                    ins = new BufferedReader ( new InputStreamReader(new FileInputStream(file1)));
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
      String line = "", str = "";
      String st = null;
        try {
    st = IOUtils.toString(ins);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
   //split text to array of words
   String[] words=st.split("\\s");
   //frequency array
   int[] fr=new int[words.length];
  //init frequency array
  for(int i1=0;i1<fr.length;i1++)
   fr[i1]=-1;
  //count words frequency
  for(int i1=0;i1<words.length;i1++){
   for(int j=0;j<words.length;j++){
     if(words[i1].equals(words[j]))
       {
         fr[i1]++;
            }
        }
   }
   //clean duplicates
    for(int i1=0;i1<words.length;i1++){
     for(int j=0;j<words.length;j++){
       if(words[i1].equals(words[j]))
       {
         if(i1!=j) words[i1]="";
       }
    }
   }
     int a = 0;
    try {
    while ((line = ins.readLine()) != null) {
    str += line + " ";
    }
} catch (IOException e) {
            e.printStackTrace();
}
StringTokenizer st1 = new StringTokenizer(str);
while (st1.hasMoreTokens()) {
String s = st1.nextToken();
a++;
}
int total=0;
   for(int i1=0;i1<words.length;i1++){
if(words[i1]!=""){
//System.out.println(words[i1]+"="+fr[i1]);
total+=fr[i1];
}
}
 System.out.println("( "+file1.getName() +" )-" +"Total repeated words counted:"+total+","+"total no of words:"+a);
// System.out.println("total no of words:"+a);
}
}}

最佳答案

package Packagename;

public class newrepeatedcount {

public static void main(String[] args){
    Totalnoofwords B=new Totalnoofwords();
    B.somename();
    System.out.println("a:"+B.a);
}

}

10-07 16:23
查看更多