VarCheck.java
package varCheck;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class VarCheck {
private List<String> listKey =new ArrayList<String>();
private List<String> data=new ArrayList<String>();
private List<String> listVar=new ArrayList<String>();
private Set<String> set1=new TreeSet<String>();
private Set<String> set2=new TreeSet<String>();
public VarCheck() throws IOException {
initListKeyValue();
File file = new File("input.txt");//プロジェクトフォルダの直下
BufferedReader br=new BufferedReader(new FileReader(file));
//一旦Stringの配列に入れる
String line0="";
while ((line0 = br.readLine()) != null) {
data.add(line0);
}
br.close();
int flg=1;
for(int i=0; i<data.size();i++) {
//先頭からSETの文字を検索し、途切れたら"---SET 終了---"を出力
String s =data.get(i);
if(flg==1 && s.indexOf("SET")==-1) {
flg=0;
data.set(i, "---@SET 終了---");
break;
}
}
//debug用に一度すべて出力
// for(int i=0; i<data.size();i++) {
// System.out.println(data.get(i));
// }
// System.out.println("-----");
boolean firstFlg=true;
for(int i=0; i<data.size();i++) {
String line =data.get(i);
if(line.contains("---@SET 終了---")) {
firstFlg=false;
// System.out.println("aaa:" + line);
} else if(line.contains("@")) {
int a=line.indexOf("@");
int b=line.indexOf(":");
String s ="";
if(b == -1) {
s =line.substring(a);
//チェック配列に追加
listVar.add(s);
} else {
try {
s=line.substring(a,b);
}catch(Exception e) {
System.out.printf("line=%s\n", line);
System.out.printf("%s,%s\n", a,b);
throw e;
}
}
// System.out.println("bbb:" + s);
//------------
// String sp[] = s.split("@");
// for(String s0 : sp) {
// System.out.println("\tccc:[" + s0+"]");
// }
// System.out.println("\tsubstrin0:[" + s +"]");
//------------------------------------------------------------------------
//inputは文字列。outputはListに格納する。
if(firstFlg) {
set1.add(s.trim());
} else {
List<String> list = StringSpritToList(s);
for(String s4:list) {
set2.add(s4);
}
}
}
}
System.out.println("=====結果=====");
System.out.printf("set1 size=%s\n", set1.size());
System.out.printf("set2 size=%s\n", set2.size());
System.out.print("set1 toArray=");
for(String s : set1) {
System.out.printf("[%s] ", s);
}
System.out.println();
System.out.print("set2 toArray=");
for(String s : set2) {
System.out.printf("[%s] ", s);
}
System.out.println();
}
private static List<String> StringSpritToList(String s) {
List<String> list = new ArrayList<String>();
int sindex = s.indexOf("@");//
String s2 = "";
while(sindex != -1) {
s2 = s.substring(sindex);
// System.out.println("\tsubstring:[" + s2 +"]");
s2 = s2.split(" ")[0];
// System.out.println("\t\tsubstring:[" + s2 +"]");
// System.out.println("\ta1:[" + sindex +"]");
sindex = s.indexOf("@",sindex + 1);
list.add(s2);
}
//------------------------------------------------------------------------
// for(String s3 : list) {
//// System.out.printf("list=%s\n", s3);
// }
//------------------------------------------------------------------------
return list;
}
private void initListKeyValue() {
listKey.add("@");
}
public static void main(String[] args) throws Exception {
new VarCheck();
}
}