========================帮忙截个字符串====================

Just_Ask 2013-03-27 10:20:54

上面的图片是一个字符串,“-”代表空格,我想把图中的字符串切了,每个红框代表一个字符串,共切成5个。要怎么实现?
可否有正则表达式的话最好。
...全文
145 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ada168855 2013-03-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/ada168855/article/details/8653870 希望能够帮到你
zhaoli2315 2013-03-27
  • 打赏
  • 举报
回复
你要的东西都在array[]里面了啊
zhaoli2315 2013-03-27
  • 打赏
  • 举报
回复
引用 12 楼 Just_Ask 的回复:
引用 10 楼 zhaoli2315 的回复:先将多个空格用一个空格代替,然后在用字符串分割法,注意导入import java.util.regex.*; public static void main(String args[]){ String arr = "DEL SEF DEQ QQQ GGG FFF"; String regEx="[' ……
换完之后不就是一个数组了吗?在数组里面拿不就行了?
Just_Ask 2013-03-27
  • 打赏
  • 举报
回复
引用 10 楼 zhaoli2315 的回复:
先将多个空格用一个空格代替,然后在用字符串分割法,注意导入import java.util.regex.*; public static void main(String args[]){ String arr = "DEL SEF DEQ QQQ GGG FFF"; String regEx="[' ']+"; //一个或多个空格 ……
换完之后怎么拿相应的字符串?
Just_Ask 2013-03-27
  • 打赏
  • 举报
回复
引用 7 楼 nmyangym 的回复:
Java code?1234567891011121314151617181920212223242526272829303132333435import java.util.*;public class SplitString1{ public static void main(String[] args){ String s = "GOLDEN W……
凭你写了这么多代码就会给分,但是个人感觉代码长了些,不知有没有更简的方法
zhaoli2315 2013-03-27
  • 打赏
  • 举报
回复
先将多个空格用一个空格代替,然后在用字符串分割法,注意导入import java.util.regex.*; public static void main(String args[]){ String arr = "DEL SEF DEQ QQQ GGG FFF"; String regEx="[' ']+"; //一个或多个空格 Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(arr); String arr2 = m.replaceAll(" "); String array[] = arr2.split(" "); System.out.println(arr2);//替換為一個空格 System.out.println(array.length); }
nmyangym 2013-03-27
  • 打赏
  • 举报
回复
21句,把"i-1" 改成"i".这个不影响结果,但i-1不正确。
nmyangym 2013-03-27
  • 打赏
  • 举报
回复
这句:
        list.add(s.substring(begin , s.length()-1 ).trim());//最后那一个子串
换一下:
        list.add(s.substring(begin , s.length()).trim());//最后那一个子串
nmyangym 2013-03-27
  • 打赏
  • 举报
回复

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
*/
土豆你个番茄 2013-03-27
  • 打赏
  • 举报
回复

java String srt.spint(" ");
snow-is-my-Love 2013-03-27
  • 打赏
  • 举报
回复
若 所有数据 都是 这样的数据 也是可以切的 切完再合 如果数据结构不都这样 我就没招了
Just_Ask 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 scottxzj 的回复:
其实 根据空格拆分 就能实现.split(" ")
这个不行,会分成很多个字符串的,只要是空格就切,不符合
Just_Ask 2013-03-27
  • 打赏
  • 举报
回复
引用 2 楼 xiesisi3 的回复:
这个条件给的太模糊了! 怎么样才算一个字符串?弄清楚这个条件先。 你的示例中给出的 相隔两个空格可以算同一个字符串(例如WHITE--FRAGRANT) 也可以算不同的字符串(例如10.78870--10.75000) 这个就很明显不能简单的通过正则来匹配了!
是的,所以我来问问,正是因为有的短语中间有两个空格,但是,他们是应该分为一个字符串的,所以不知怎么分
xiesisi3 2013-03-27
  • 打赏
  • 举报
回复
这个条件给的太模糊了! 怎么样才算一个字符串?弄清楚这个条件先。 你的示例中给出的 相隔两个空格可以算同一个字符串(例如WHITE--FRAGRANT) 也可以算不同的字符串(例如10.78870--10.75000) 这个就很明显不能简单的通过正则来匹配了!
snow-is-my-Love 2013-03-27
  • 打赏
  • 举报
回复
其实 根据空格拆分 就能实现.split(" ")

62,614

社区成员

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

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