求给个思路 java解析txt 7 98 91 5****7 52 73 94 3****7 91 2****以****为分隔符将记录分开,如上是txt格式,一行是一个点的坐标x,y 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 readLine,一次读一行,读到含有*好的就不管他 用bufferedreader 读取每一行的数据,判断是否存在*如果存在则跳过这行,否则就解析这一行的数据,通过相应的分隔符获取到两个坐标值。 import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * TxtAnalyze.java * * @author */class Point{ private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public String toString(){ return x + " " + y; }}public class TxtAnalyze { public static List<Point> txtAnalyze(String filePath) throws Exception{ List<Point> pointList = new ArrayList<Point>(); File file = new File(filePath); if(file.exists()){ BufferedReader br = new BufferedReader(new FileReader(file)); String line = ""; while((line = br.readLine()) != null){ if(line.equals("***")) continue; int x = Integer.parseInt(line.substring(0,1)); int y = Integer.parseInt(line.substring(2,3)); Point p = new Point(); p.setX(x); p.setY(y); pointList.add(p); } } return pointList; } public static void main(String[] args) throws Exception{ List<Point> pointList = txtAnalyze(); for(Iterator<?> it = pointList.iterator();it.hasNext();){ System.out.println(it.next()); } }} 楼上 int x = Integer.parseInt(line.substring(0,1)); int y = Integer.parseInt(line.substring(2,3));这样不好吧? 万一数字是两位数或3位数呢?就这里还是用split来做吧。 java通过流来读取 一行一行的读取。。然后你解析就可以了。。 JavaScript返回 localhost 127.0.0.1有区别吗?? 为什么在提交表单的时候密码接收不到啊! JSP中include了UTF-8的文件,出现乱码 高分求解国际化问题,高手快来抢分. 循环显示问题 SQL递归查询-——java.lang.StackOverflowError,求解! JSP问题,url-pattern多层次就404.。。急求 JSP页面查询的中文问题 求教,开始学习jsp/servlet/javabean,请推荐好书 Hibernate 多对一 外键问题 cas 单点登录返回更多用户信息...
import java.io.File;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/**
* TxtAnalyze.java
*
* @author
*/class Point{
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
} public String toString(){
return x + " " + y;
}
}public class TxtAnalyze {
public static List<Point> txtAnalyze(String filePath) throws Exception{
List<Point> pointList = new ArrayList<Point>(); File file = new File(filePath); if(file.exists()){
BufferedReader br = new BufferedReader(new FileReader(file)); String line = ""; while((line = br.readLine()) != null){
if(line.equals("***"))
continue;
int x = Integer.parseInt(line.substring(0,1));
int y = Integer.parseInt(line.substring(2,3)); Point p = new Point();
p.setX(x);
p.setY(y); pointList.add(p);
}
} return pointList;
} public static void main(String[] args) throws Exception{
List<Point> pointList = txtAnalyze(); for(Iterator<?> it = pointList.iterator();it.hasNext();){
System.out.println(it.next());
}
}
}
int y = Integer.parseInt(line.substring(2,3));这样不好吧? 万一数字是两位数或3位数呢?
就这里还是用split来做吧。