📄 newcommclass.java
字号:
//notGradeValue += duanTouValue;
}
if (jiShuType >= 6 ){ //6为等外路
notGradeValue += Double.parseDouble(luDuanValue);
}
if (jiShuType > 0 && jiShuType < 6 ){ //小于6为等级路,
gradeValue += Double.parseDouble(luDuanValue);
}
// 技术等级(高速、一级、二级、三级、四级)
switch (jiShuType) {
case 1: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 2: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 3: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 4: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 5: gaoSuValue += Double.parseDouble(luDuanValue); break;
default: gaoSuValue += Double.parseDouble(luDuanValue); break;
}
//路面类型(有路面、无路面、沥清混凝土、水泥混凝土、、砖铺路面)
switch (luMianType) {
case 1: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 2: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 3: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 4: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 5: gaoSuValue += Double.parseDouble(luDuanValue); break;
case 8: gaoSuValue += Double.parseDouble(luDuanValue); break;
default: gaoSuValue += Double.parseDouble(luDuanValue); break;
}
mileCount += Double.parseDouble(luDuanValue); //路线总里程
if (childStr[25].equals("1")) //是否睛雨通车里程
qinYuMile += mileCount ;
else qinYuMile += 0;
}
}
temp[0] = ItemValue.getRound(mileCount,3) ; //路线总里程
temp[1] = ItemValue.getRound(chongFuValue,3); //重复
temp[2] = ItemValue.getRound(duanTouValue,3); //断头
temp[3] = ItemValue.getRound(gradeValue,3); //等级
temp[4] = ItemValue.getRound(notGradeValue,3); //等外
temp[19] = ItemValue.getRound(qinYuMile,3); //是否晴雨通车里程
return temp;
}
//按路线编码取里程
public double getRoadMileByNum(String roadNumber , List roadList){
double roadMile = 0.0;
String lineStr = "";
String [] childStr = null;
String lxNumber = "";
for (int i = 0 ; roadList != null && i < roadList.size(); i++){
lineStr = (String)roadList.get(i);
if (lineStr.length() == 0) continue;
childStr = lineStr.split("\t");
lxNumber = childStr[1];
if (lxNumber.equals(roadNumber)){
roadMile += roadMile + Double.parseDouble(childStr[19]);
}else
continue;
}
return roadMile;
}
// 按路线编码取里程
public double getRoadMile(String roadNumber , String [] ldList){
double roadMile = 0.0;
String lineStr = "";
String [] childStr = null;
String lxNumber = "";
for (int i = 1 ; ldList != null && i < ldList.length; i++){
lineStr = ldList[i];
if (lineStr.length() == 0) continue;
childStr = lineStr.split("\t");
lxNumber = childStr[1];
if (lxNumber.equals(roadNumber)){
roadMile += roadMile + Double.parseDouble(childStr[19]);
}else
continue;
}
return roadMile;
}
//按路段编号取里程
public double getLuDuanMileByNum(String luDuanNumber ,List ldlist ){
double roadMile = 0.0;
String lineStr = "";
String [] childStr = null;
String ldNumber = "";
for (int i = 1; ldlist != null && i < ldlist.size() ; i++) {
lineStr = (String)ldlist.get(i);
childStr = lineStr.split("\t");
ldNumber = childStr[0];
if (ldNumber.equals(luDuanNumber))
roadMile = Double.parseDouble(childStr[19]);
return roadMile;
}
return roadMile;
}
// 按根据路线编码查找通达路线中乡镇距离通达路线的里程
public double getTownMileByNum(String lxNumber , List roadList){
double roadMile = 0.0;
String lineStr = "";
String [] childStr = null;
String ldNumber = "";
for (int i = 0 ; roadList != null && i < roadList.size(); i++){
lineStr = (String)roadList.get(i);
childStr = lineStr.split("\t");
ldNumber = childStr[0];
if (ldNumber.equals(lxNumber)){
roadMile = Double.parseDouble(childStr[19]);
return roadMile;
}
}
return roadMile;
}
//在通达路线中获取所有乡镇、建制村的编码、名称2
public List getAllVillageAndTown2 (String filePath){
List list = new ArrayList();
List l = this.getVillageAndTownNumber(filePath);
List temp = new ArrayList();
String lineStr = "";
String [] childStr = null;
String danWeiNumber = "";
String tempNumber = "";
int n = 0;
for (int i = 0 ; l != null && i < l.size() ; i++){
lineStr = (String)l.get(i);
if (lineStr.length() == 0) continue;
childStr= lineStr.split("\t");
danWeiNumber = childStr[5];
n = 0;
for (int j = 0; j < temp.size(); j++ ){
tempNumber = (String)temp.get(j);
if (tempNumber.length() == 0) continue;
if (tempNumber.equals(danWeiNumber))
n++;
}
if (n == 0)
temp.add(danWeiNumber);
}
return temp;
}
// 获取本次通达路线信息
public List getNewTongDaByNum(String filePath,String danWeiNumber){
List temp = new ArrayList();
List list = new ArrayList();
ReadTxt rt = new ReadTxt();
String txtPath = filePath + "\\Xztdqk.txt";
String[] listStr = rt.readFile(txtPath);
String lineStr = "";
//读取乡镇通达路线信息
for (int i = 1; listStr != null && i < listStr.length; i++) {
lineStr = listStr[i];
if (lineStr.length() == 0) continue;
list.add(lineStr);
}
//读取行政村通达路线信息
txtPath = filePath + "\\Jzctdqk.txt";
listStr = rt.readFile(txtPath);
for (int i = 1; listStr != null && i < listStr.length; i++) {
lineStr = listStr[i];
if (lineStr.length() == 0) continue;
list.add(lineStr);
}
String [] childStr = null;
String dWeiNumber = "";
String tempNumber = "";
int n = 0;
for (int i = 0 ; list != null && i < list.size(); i++){
lineStr = (String)list.get(i);
childStr= lineStr.split("\t");
dWeiNumber = childStr[0];
isXzcAndXzBianMa(dWeiNumber);//验证编码
if (dWeiNumber.equals(danWeiNumber))
temp.add(lineStr);
}
return temp;
}
// 获取本次通达路线信息
public List getFirstTongDaByNum(List list ,String danWeiNumber){
String [] childStr = null;
List temp = new ArrayList();
String lineStr = "";
String dWeiNumber = "";
String tempNumber = "";
int n = 0;
for (int i = 0 ; list != null && i < list.size(); i++){
lineStr = (String)list.get(i);
childStr= lineStr.split("\t");
dWeiNumber = childStr[5];
//isXzcAndXzBianMa(dWeiNumber);//验证编码
if (dWeiNumber.equals(danWeiNumber))
temp.add(lineStr);
}
return temp;
}
//根据乡镇、建制村编码及路线编码获取通达路线
public String getTongDaString(String filePath , String danWeiNumber ,String lxNumber){
List list = this.getNewTongDa(filePath);
String lineStr = "";
String [] childStr = null;
String dWeiNumber = "";
String roadNumber = "";
for (int i = 0 ; list != null && i < list.size() ; i++ ){
lineStr = (String)list.get(i);
childStr = lineStr.split("\t");
dWeiNumber = childStr[0];
roadNumber = childStr[1];
if (dWeiNumber.indexOf(danWeiNumber) != -1 && roadNumber.indexOf(lxNumber) != -1){
return lineStr;
}
}
return null;
}
public String getNewTongDaString(String danWeiNumber,List oldList,List newList){
String tempStr = null;
//String dwNumber = "";
//String contentTxt = "";
String roadNumber = "";
String newRoadNumber = "";
String lineStr = "";
String [] childStr = null;
String [] newChildStr = null;
//String newLineStr = "";
String rowStr = "";
double roadMile = 0.0;
//String newLxNumber = "";
String tempLineStr = "";
int n = 0;
for (int k = 0; newList != null && k < newList.size(); k++ ){
lineStr = (String)newList.get(k);
childStr = lineStr.split("\t");
//dwNumber = childStr[5];
roadNumber = childStr[7];
if (roadNumber.equals("null")) continue;
roadMile = ItemValue.getRound( ItemValue.getRound(Double.parseDouble(childStr[13]),6)/0.001,2);
n = 0;
for (int j = 0; oldList != null && j < oldList.size(); j++ ){
lineStr = (String)oldList.get(j);
newChildStr = lineStr.split("\t");
// newLineStr = newChildStr[0];
newRoadNumber = newChildStr[7];
if (newRoadNumber.equals("null")) continue;
if (newRoadNumber.equals(roadNumber)){
n++;
}
}
if (n == 0 ){
tempStr = danWeiNumber + "\t\t" + roadNumber + "\t" + roadMile + "\t\r\n" ;
tempLineStr += tempStr;
}
}
return tempLineStr;
}
//按乡镇、建制村编码查找新增通达路线
public List getAddTongDa(String filePath ,String danWeiNumber ,List tongDaList ){
List list = this.getNewTongDa(filePath);
List temp = new ArrayList();
String lineStr = "";
String [] childStr = null;
String dWeiNumber = "";
String roadNumber = "";
String rowStr = "";
String [] tempStr = null;
String dWeiNumber1 = "";
String roadNumber1 = "";
int n = 0;
for (int i = 0; list != null && i < list.size(); i++ ){
lineStr = (String)list.get(i);
childStr = lineStr.split("\t");
dWeiNumber = childStr[0];
roadNumber = childStr[1];
n = 1;
if (dWeiNumber.equals(danWeiNumber)){
n = 0;
for (int j = 0; tongDaList != null && j < tongDaList.size(); j++){
rowStr = (String)tongDaList.get(j);
tempStr = rowStr.split("\t");
roadNumber1 = tempStr[1];
if (roadNumber1.equals(roadNumber)){
n++ ;
}
}
if ( n == 0 )
temp.add(lineStr);
}
}
return temp;
}
//验证乡镇、行政村编码
public void isXzcAndXzBianMa(String number){
if (number.length() != 12 )
System.out.println(number + "不符合行政村或乡镇编码规则!");
}
//验证路线编码
public void isLxNumber(String lxNumber){
if (lxNumber.substring(0,1).equals ("X") || lxNumber.substring(0,1).equals("Y")
|| lxNumber.substring(0,1).equals("Z")
|| lxNumber.substring(0,1).equals("C")
|| lxNumber.substring(0,1).equals("S")
|| lxNumber.substring(0,1).equals("G")
|| lxNumber.length() == 10 )
{
//符合规则
}
else
System.out.println(lxNumber + " 不符合路线编码规则!");
}
public static void main(String msg[]) {
CommClass cc = new CommClass();
cc.setTxtFilePath("d:\\test\\Xzjbqk.txt");
List l = cc.getXiangZhengTbl();
}
//按重复路线、断头路统计路线里程
public double [] getRoadMileCD(String [] ldList , String lxNumber){
double [] temp = new double [3];
String roadNumber = "";
String roadName = "" ;
String tempNumber = "";
String lineStr = "";
String tempStr = "";
String alterStr = "";
int jiShuType = 0; //技术等级
int isChongFu = 0;//是否重复路线
int isDuanTou = 0;//是否断头路线
String luDuanNumber = "";//路段编号
String [] childStr = null;
String [] tempChild = null;
double gradeValue = 0.0;
double notGradeValue = 0.0;
double notValue = 0.0;
double tempValue = 0.0;
double sumValue = 0.0;
double chongFuValue = 0.0;
double duanTouValue = 0.0;
double mileCount = 0.0;
String luDuanValue = "";
int n = 0;
for (int i = 1; ldList != null && i < ldList.length ; i++) {
lineStr = ldList[i];
if (lineStr.length() == 0 ) continue;
childStr = lineStr.split("\t");
roadNumber = childStr[1];
roadName = childStr[2];
if (childStr[17].trim().length() == 0)
jiShuType = 1;
else
jiShuType = Integer.parseInt(childStr[17]);
isChongFu = Integer.parseInt(childStr[22]);
isDuanTou = Integer.parseInt(childStr[26]);
luDuanNumber = childStr[0];
luDuanValue = childStr[19];
if (roadNumber.equals(lxNumber)){
//mileCount += Double.parseDouble(luDuanValue);
if (isChongFu ==1){ //1是2否
chongFuValue += Double.parseDouble(luDuanValue);; //重复路线里程
}
if (isDuanTou == 1){ //1是2否
duanTouValue += Double.parseDouble(luDuanValue);
}
sumValue += Double.parseDouble(luDuanValue);
}
}
temp[0] = sumValue ; //合计=路线总里程-重复-断头里程
//temp[1] = gradeValue; //等级
//temp[2] = notGradeValue; //等外
temp[1] = chongFuValue; //重复
temp[2] = duanTouValue; //断头
return temp;
}
/**
* @return 返回 txtFilePath。
*/
public String getTxtFilePath() {
return txtFilePath;
}
/**
* @param txtFilePath 要设置的 txtFilePath。
*/
public void setTxtFilePath(String txtFilePath) {
this.txtFilePath = txtFilePath;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -