java - 类构造函数在类中不可见

标签 java class

我试图通过将我作为第一个项目编写的一些java代码划分为类来简化它。我对此很陌生,所以我在下面创建了这个,但在标记点我不断收到错误:

Syntax error on token ";", { expected after this token

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TxtExtr_AnatomyRegex {
private String x;
private Map<String,String> map= new LinkedHashMap<String,String>();
private String [] seAnatomy=null;
private ArrayList<String> Anatomy_arr = new ArrayList<String>();
private ArrayList<List<String>> Anatomy_table2d = new ArrayList<List<String>>();
String el[]=null;

    public TxtExtr_AnatomyRegex(String x,Map<String,String> map) {
        // TODO Auto-generated constructor stub
        x=this.x;
        map=this.map;
    }
    Pattern Anatomy_pattern = Pattern.compile("Anatomy\\*(.*?Hiatal hernia[^\n]*)",Pattern.DOTALL);
    Matcher matcherAnatomy_pattern = Anatomy_pattern.matcher(x); /////////////////////////////////ERROR IS HERE

    while (matcherAnatomy_pattern.find()) {
        seAnatomy=matcherAnatomy_pattern.group(1).split("\\n|\\r");
    }

    for (int ise=0;ise<seAnatomy.length;ise++){ 
        Anatomy_arr.add(seAnatomy[ise]);
    }
    for (String ss:Anatomy_arr){
    ArrayList<String> tbb = new ArrayList<String>();
    el=ss.split("\\t");
        for (String e:el){
            if(!e.isEmpty()){
              tbb.add(e.trim());
             }
        }
             if(!tbb.isEmpty()){
             Anatomy_table2d.add(tbb);
             for (int ff=0;ff<Anatomy_table2d.size();ff++){
                    //Symptom
                 map.put("SumAnatomy"+Anatomy_table2d.get(ff).get(0),Anatomy_table2d.get(ff).get(1));
                      }
             }
     }
    System.out.println(Anatomy_table2d);

}
}

我很感激我会得到很多“读一下你的新手类”类型的评论......(我已经但是谢谢了)......但我认为问题是我需要把 Matcher matcherAnatomy_pattern = Anatomy_pattern.matcher(x); 在声明的变量中。我这样做只是为了得到另一个错误,它不可见。我在这里缺少什么基本概念?

最佳答案

您在构造函数之后编写的所有内容都必须封装在构造函数或单独的方法中。您可以使用 anatomy_pattern 等作为类的属性。

public class TxtExtr_AnatomyRegex {
     private String x;
     private Map<String,String> map= new LinkedHashMap<String,String>();
     private String [] seAnatomy=null;
     private ArrayList<String> Anatomy_arr = new ArrayList<String>();
     private ArrayList<List<String>> Anatomy_table2d = new      ArrayList<List<String>>();
     String el[]=null;
     Pattern Anatomy_pattern = null;
     Matcher atcherAnatomy_pattern = null;

     public TxtExtr_AnatomyRegex(String x,Map<String,String> map) {
        // TODO Auto-generated constructor stub
        x=this.x;
        map=this.map;

        Anatomy_pattern = Pattern.compile("Anatomy\\*(.*?Hiatal hernia[^\n]*)",Pattern.DOTALL);
        matcherAnatomy_pattern = Anatomy_pattern.matcher(x); /////////////////////////////////ERROR IS HERE

      //...put here your for and while stuff

      }//end of the constructur


      //... some methods ... you maybe also can do something of the loops in methods

  } //end of the class

关于java - 类构造函数在类中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37020926/

相关文章:

java - 何时调用 main 而不是调用 main?

java - 传递一个类并调用它的方法

PHP 在外部文件的类中调用函数,语法?

java - JTextField 不接受输入

java - 如何扩展范围\w\d+-\w\d+

java - ngdbc.jar 等效 Maven 存储库

java - 为什么我们不需要在 main 方法中声明 new 来创建 Err 对象?

java - 如何创建读取制表符分隔文件的通用进程,并从中返回通用 Map

java - H.323协议(protocol)端点到端点发送和接收什么来发起调用?

java - 如何在 OO Java 中建立两个对象之间的双向关联