我试图通过将我作为第一个项目编写的一些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/