我按照这个思路写了类、读取转换函数,但是总是说字符串越界,求大神指导
import org.json.JSONObject;
public class Inf {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader (
new FileReader(new File("G:\\test_txt\\trty.txt")));
BufferedWriter writer = new BufferedWriter(
new FileWriter(new File("G:\\test_txt\\trty.json")));
Paper paper = new Paper();
String line;
int count = 0;
while((line =reader.readLine())!=null){
if(line.length() <2)continue;
char identifier = line.charAt(3);
if(!(identifier=='i'||identifier=='*'||identifier=='@'||identifier=='o'||identifier=='t'||identifier=='c'||identifier=='%'||identifier=='!'))
continue;
if(identifier == 'i') {
if(count>0) {
writer.write(paper.toString()+"\n");
paper.clear();
}
count++;
}
switch(identifier){
case 'i' :
paper.setIndex(Integer.valueOf(line.substring(7).trim()));
break;
case 't' :
paper.setYear(Integer.valueOf(line.substring(10).trim()));
break;
case '@' :
String authors = line.substring(3).trim();
for (String author : authors.split(";")) {
paper.addAuthor(author);
}
break;
case 'o' :
paper.addAffiliations(String.valueOf(line.substring(3).trim()));
break;
case '*':
paper.addVenue(String.valueOf(line.substring(3).trim()));
break;
case 'c' :
paper.addVenue(String.valueOf(line.substring(3).trim()));
break;
case '!' :
paper.addAbstract(String.valueOf(line.substring(3).trim()));
break;
case '%' :
paper.addReference(String.valueOf(line.substring(3).trim()));
break;
default:
System.out.println("not successful");
}
}
reader.close();
writer.close();
}