java字符串分隔 DYNFLIGHT#A###2012/07/02 14:42:54#START#186###,以上字符串需要获取#号之间的内容,使用String的split方法不用分隔多个连续#号,请问有什么方法能分多个连续的#号,#号与#号之间没有值的时侯我希望能返回null。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用indexof()方法和subString()方法配合使用应该可以,自己琢磨下 没读懂你是什么意思,"#号与#号之间没有值的时侯"split方法返回的是"",你直接替换成null不就行了,或者你是想要输出DYNFLIGHT,A,2012/07/02 14:42:54,START,186这样?String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###"; String[] temp = str.split("#+"); for(String s : temp){ System.out.print(s + ","); } 我想输出:DYNFLIGHT,A,,,2012/07/02 14:42:54,START,186,,,。但split方法最后结尾部份的三个#当成一个#号处理了。 String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###"; String[] temp = str.split("#"); for(String s : temp){ System.out.print(s + ","); } 以上语句输出的是DYNFLIGHT,A,,,2012/07/02 14:42:54,START,186,最后三个#之间的两个""没有了。 你看能用不public static void main(String[] args) { String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###"; Pattern pattern = Pattern.compile("#"); Matcher matcher = pattern.matcher(str); List<String> list = new ArrayList<String>(); int startIndex = 0; while(matcher.find()){ int endIndex = matcher.start(); //这里可以判断str.substring(startIndex, endIndex).length() == 0替换成null list.add(str.substring(startIndex, endIndex)); startIndex = endIndex + 1; } for(String s : list){ System.out.print(s +","); } }输出DYNFLIGHT,A,,,2012/07/02 14:42:54,START,186,,, 这个比 indexOf 和 subString 配合的好 关于ScheduledThreadPoolExecutor的想法 java如何通过串口发送短信 请问关于数据输入流的问题 public void myMethod(String a,int b,float c)的正确重构方法是哪个? 怎么得到已启动的线程? 报表打印与传输问题求救!!!!!!!(在线等待) 天啦,我都快疯了 用Graphics 中的drawLine()方法可以画出"粗"一点的线吗? JAVA文档 Java 方法调用方法,被调用的方法 java循环基础 java的集中for循环分别在什么时候用
"#号与#号之间没有值的时侯"split方法返回的是"",
你直接替换成null不就行了,
或者你是想要输出
DYNFLIGHT,A,2012/07/02 14:42:54,START,186
这样?String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###";
String[] temp = str.split("#+");
for(String s : temp){
System.out.print(s + ",");
}
但split方法最后结尾部份的三个#当成一个#号处理了。 String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###";
String[] temp = str.split("#");
for(String s : temp){
System.out.print(s + ",");
}
以上语句输出的是
DYNFLIGHT,A,,,2012/07/02 14:42:54,START,186,
最后三个#之间的两个""没有了。
String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###";
Pattern pattern = Pattern.compile("#");
Matcher matcher = pattern.matcher(str);
List<String> list = new ArrayList<String>();
int startIndex = 0;
while(matcher.find()){
int endIndex = matcher.start();
//这里可以判断str.substring(startIndex, endIndex).length() == 0替换成null
list.add(str.substring(startIndex, endIndex));
startIndex = endIndex + 1;
}
for(String s : list){
System.out.print(s +",");
}
}输出DYNFLIGHT,A,,,2012/07/02 14:42:54,START,186,,,