看下面这个处理字符串问题

leilei_java 2010-10-08 05:02:51
String cut = "03|05|02|01|";
String acctNo = "1234|5678@2323|90123|4567|";
String type = "404002|404002@404015|404015|404014|";
//输入05,把下面对应的acctNo 和 type 取出来
默认取的是@前面的,如果发现type是404002的时候 就取后面的
...全文
58 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianshi1017 2010-10-08
  • 打赏
  • 举报
回复
楼上正解
clariones 2010-10-08
  • 打赏
  • 举报
回复
唉,现在这种简单问题,为啥都要在论坛里问?

public static void main(String[] args) throws Exception {
String cut = "03|05|02|01|";
String acctNo = "1234|5678@2323|90123|4567|";
String type = "404002|404002@404015|404015|404014|";

String input = "05";

String[] fields = cut.split("\\|");
int pos = -1;
for(int i=0;i<fields.length;i++){
if(fields[i].equals(input)){
pos = i;
break;
}
}
// if(pos == -1) throw new Exception .... 错误处理自己写吧
String typeValue = type.split("\\|")[pos];
boolean doSelect = false;
if(typeValue.indexOf("@") > 0){
doSelect = typeValue.substring(0, typeValue.indexOf("@")).equals("404002");
}
System.out.println(pickValue(type, pos, doSelect));
System.out.println(pickValue(acctNo, pos, doSelect));

}

private static String pickValue(String in, int pos, boolean doSelect) {
String val = in.split("\\|")[pos];
if (val.indexOf("@") > 0){
if(doSelect){
return val.substring(val.indexOf("@")+1);
}else{
return val.substring(0, val.indexOf("@"));
}
}
return val;
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧