Apple Number : 0080075911
Calendar MMYY : 0510
Origin : 0164 iTunes S.a.r.l., Luxembourg
Currency : USD
Prior Balance 0.00
Current Month 4,255.30
Withholding Tax 0.00
GST/JCT Tax 0.00
--------------------
Payment 4,255.30
上面为一个txt文档内容(在txt里是没有格式的,所有换行的位置都是一个小黑方块儿),可以理解为左边部分是表头,是固定的,右边部分为数据,是可变的。现在需要一个程序,首先这个txt文件要作为参数被传进程序,其次把txt左边部分作为一个javabean,右边部分作为值分析读取出去之后赋值到此javabean中去,求此代码。(注:此javabean数据采集到之后供录入数据库用,大侠们不用考虑这块,仅采集到数据即可),先行写过。要求是最好可以用正则分析,当然不用正则也可以。关键看出代码的速度和效率。附另一个txt内容供对比和参考:Apple Number : 0080075911
Calendar MMYY : 0510
Origin : 0082 Apple Pty Limited, Australia
Currency : AUD
Prior Balance 0.00
Current Month 255.44
Withholding Tax 0.00
GST/JCT Tax 0.00
--------------------
Payment 255.44
Calendar MMYY : 0510
Origin : 0164 iTunes S.a.r.l., Luxembourg
Currency : USD
Prior Balance 0.00
Current Month 4,255.30
Withholding Tax 0.00
GST/JCT Tax 0.00
--------------------
Payment 4,255.30
上面为一个txt文档内容(在txt里是没有格式的,所有换行的位置都是一个小黑方块儿),可以理解为左边部分是表头,是固定的,右边部分为数据,是可变的。现在需要一个程序,首先这个txt文件要作为参数被传进程序,其次把txt左边部分作为一个javabean,右边部分作为值分析读取出去之后赋值到此javabean中去,求此代码。(注:此javabean数据采集到之后供录入数据库用,大侠们不用考虑这块,仅采集到数据即可),先行写过。要求是最好可以用正则分析,当然不用正则也可以。关键看出代码的速度和效率。附另一个txt内容供对比和参考:Apple Number : 0080075911
Calendar MMYY : 0510
Origin : 0082 Apple Pty Limited, Australia
Currency : AUD
Prior Balance 0.00
Current Month 255.44
Withholding Tax 0.00
GST/JCT Tax 0.00
--------------------
Payment 255.44
Calendar MMYY : 0510
Origin : 0082 Apple Pty Limited, Australia
Currency : AUD这部分读出来,:分隔即可。下面的,如果都是数字。正则即可。不知是否每组都符合同样的规律?
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
File file = new File("\\test.txt");
Info info = new Info();
readTextInfoToBean(file, info);
System.out.println(info.getAppleNo());
System.out.println(info.getCalendar());
System.out.println(info.getOrigin());
System.out.println(info.getCurrency());
} public static void readTextInfoToBean(File file, Info info) { try {
BufferedReader br = new BufferedReader(new FileReader(file));
String str = "";
while ((str = br.readLine()) != null) {
String key = str.split(":")[0].trim();
String value = str.split(":")[1].trim();
if ("Apple Number".equals(key)) {
info.setAppleNo(value);
} else if ("Calendar MMYY".equals(key)) {
info.setCalendar(value);
} else if ("Origin".equals(key)) {
info.setOrigin(value);
} else if ("Currency".equals(key)) {
info.setCurrency(value);
} }
br.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}}
public class Info {
private String appleNo;
private String calendar;
private String origin;
private String currency;
public String getAppleNo() {
return appleNo;
}
public void setAppleNo(String appleNo) {
this.appleNo = appleNo;
}
public String getCalendar() {
return calendar;
}
public void setCalendar(String calendar) {
this.calendar = calendar;
}
public String getOrigin() {
return origin;
}
public void setOrigin(String origin) {
this.origin = origin;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
}test.txt:
Apple Number : 0080075911
Calendar MMYY : 0510
Origin : 0164 iTunes S.a.r.l., Luxembourg
Currency : USD
Current Month
Withholding Tax
GST/JCT Tax
Payment这些数据也是要的帮忙弄完,分就是你的了
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
File file = new File("\\test.txt");
Info info = new Info();
readTextInfoToBean(file, info);
System.out.println(info.getAppleNo());
System.out.println(info.getCalendar());
System.out.println(info.getOrigin());
System.out.println(info.getCurrency());
} public static void readTextInfoToBean(File file, Info info) { try {
BufferedReader br = new BufferedReader(new FileReader(file));
String str = "";
while ((str = br.readLine()) != null) {
String key = str.split(":")[0].trim();
String value = str.split(":")[1].trim();
if ("Apple Number".equals(key)) {
info.setAppleNo(value);
} else if ("Calendar MMYY".equals(key)) {
info.setCalendar(value);
} else if ("Origin".equals(key)) {
info.setOrigin(value);
} else if ("Currency".equals(key)) {
info.setCurrency(value);
} }
br.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}}
public class Info {
private String appleNo;
private String calendar;
private String origin;
private String currency;
public String getAppleNo() {
return appleNo;
}
public void setAppleNo(String appleNo) {
this.appleNo = appleNo;
}
public String getCalendar() {
return calendar;
}
public void setCalendar(String calendar) {
this.calendar = calendar;
}
public String getOrigin() {
return origin;
}
public void setOrigin(String origin) {
this.origin = origin;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
}只能完成其中的一部分吧,后面那部分是不行的Apple Number : 0080075911
Calendar MMYY : 0510
Origin : 0082 Apple Pty Limited, Australia
Currency : AUD
Prior Balance 0.00
Current Month 255.44
Withholding Tax 0.00
GST/JCT Tax 0.00
--------------------
Payment 255.44人家后面是有一部分呢
import java.io.FileReader;
import java.util.HashMap;public class test { public test() {
try { HashMap map = new HashMap();
FileReader in = new FileReader("c:\\a.txt");
BufferedReader reader = new BufferedReader(in);
String line = reader.readLine();
String splitResult[] = null;
while (line != null) {
splitResult = line.split(":");
if (splitResult.length == 2) {
map.put(splitResult[0].trim(), splitResult[1].trim());
} else {
splitResult = line.trim().split(" ");
if (splitResult.length > 1) {
map.put(line.replace(
splitResult[splitResult.length - 1], ""),
splitResult[splitResult.length - 1]);
}
}
line = reader.readLine();
}
reader.close();
in.close();
Object[] keys = map.keySet().toArray();
for (int i = 0; i < keys.length; i++) {
System.out.println(keys[i] + "=" + map.get(keys[i]));
}
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
new test();
}}
a.txt的内容为:
Apple Number : 0080075911
Calendar MMYY : 0510
Origin : 0082 Apple Pty Limited, Australia
Currency : AUD
Prior Balance 0.00
Current Month 255.44
Withholding Tax 0.00
GST/JCT Tax 0.00
--------------------
Payment 255.44执行结果:Apple Number=0080075911
Prior Balance =0.00
Current Month =255.44
Origin=0082 Apple Pty Limited, Australia
GST/JCT Tax =0.00
Calendar MMYY=0510
Withholding Tax =0.00
Currency=AUD
Payment =255.44