上面的图片是一个字符串,“-”代表空格,我想把图中的字符串切了,每个红框代表一个字符串,共切成5个。要怎么实现?
可否有正则表达式的话最好。
------解决方案--------------------
这个条件给的太模糊了!
怎么样才算一个字符串?弄清楚这个条件先。
你的示例中给出的 相隔两个空格可以算同一个字符串(例如WHITE--FRAGRANT)
也可以算不同的字符串(例如10.78870--10.75000)
这个就很明显不能简单的通过正则来匹配了!
------解决方案--------------------
若 所有数据 都是 这样的数据 也是可以切的 切完再合
如果数据结构不都这样 我就没招了
------解决方案--------------------
import java.util.*;
public class SplitString1{
public static void main(String[] args){
String s = "GOLDEN WHEEL 100% THAT WHITE FRAGRANT RICE 430 BAGS"
+" 10.78870 16.75000";
List<String> result = splitString1(s);
for(String str:result){
System.out.println(str);
}
}
//根据数字出现的位置判断
//
public static List<String> splitString1(String s){
List<String> list = new ArrayList<String>();
int begin = 0;
for(int i=0;i<s.length();i++){
int ic = (int)s.charAt(i);;
//数字,且不是第一个,并前面一个是空格,这就是要截取的子串的末尾。
//
if((ic>=48 && ic<=57) && (i!=0) && (s.charAt(i-1)==' ')){
list.add(s.substring( begin , i-1).trim());
begin = i;
}
}
list.add(s.substring(begin , s.length()-1 ).trim());//最后那一个子串
return list;
}
}
/* result
GOLDEN WHEEL
100% THAT WHITE FRAGRANT RICE
430 BAGS
10.78870
16.7500
*/
------解决方案--------------------
先将多个空格用一个空格代替,然后在用字符串分割法,注意导入import java.util.regex.*;
public static void main(String args[]){
String arr = "DEL SEF DEQ QQQ GGG FFF";
String regEx="[' ']+"; //一个或多个空格