黑马程序员技术交流社区
标题:
如何分割字符串?
[打印本页]
作者:
陈世涛
时间:
2012-7-5 13:02
标题:
如何分割字符串?
2 1 ms 2 ms 2 ms 10.1.40.125 (这些数字都是不确定的)
把上面字符串分割后分别放入数组
最好是 [0]=2 [1]=1 [2]=2 [3]=2 [4]=10.1.40.125
最低要求 [0]=2 [1]=1 ms.... [4]=10.1.40.125
作者:
田向向
时间:
2012-7-5 13:15
本帖最后由 田向向 于 2012-7-5 13:53 编辑
String str="2 1 ms 2 ms 2 ms 10.1.40.125 ";
String[] strarray=str.split(" "); //split把字符串按照指定的分割符进行分割,然后返回字符串数组,我这里是按空格分割的
for (int i = 0; i < strarray.length; i++)
System.out.println(strarray
);
楼主,我也是菜鸟是会这么一点,你要是有什么好方法,请赐教,我没用编译器写,应该不会有错误,要是有错误请拍砖。咱们版主可都是高手,你也可以跟他们请教一下,希望我的纯手工可以对你有所帮助。
作者:
蒋映辉
时间:
2012-7-5 15:47
Matcher m=Pattern.compile("\\d+").matcher("2 1 ms 2 ms 2 ms 10.1.40.125)");
while(m.find()){
System.out.println(m.group());
}
正则表达其实我也用得不熟 这个可以把数字全部提取出来 但是后面的数就会被打打乱了 可以在以上代码之前把字符串截成一前一后两部分 后面部分就储存小数 然后对前面部分来匹配截取
作者:
温少邦
时间:
2012-7-5 22:06
如果要求比较特别,或者不熟悉API
就自己写split方法呗
我看具体要求貌似是按空格分割,如果一个串中没数字,就去掉
我也不熟悉split
自己写了一个 貌似可以
public class SplitString {
public static String[] splitString(String str){
String[] arStr=new String[str.length()];
//不知道最后会分成几份,但是总不会超过原来字符串的长度
int count=0;
char c;
StringBuilder sb=new StringBuilder();
boolean bNoNum=true;
//这个boolean记录当前的String是不是没有数字
for(int i=0;i<str.length();i++){
c=str.charAt(i);
if(c!=' '){
if(c>='0'&&c<='9')
bNoNum=false;
sb.append(c);
}else {
if(!bNoNum){
//有数字,输出到数组,count++,并且新建一个StringBuilder
arStr[count++]=sb.toString();
sb=new StringBuilder();
}else{
//没有数字,不记录到数组,直接新建一个StringBuilder
sb=new StringBuilder();
}
bNoNum=true;//这个boolean要归位
}
}
//把有效部分(不是null的)重新放到一个长度匹配的数组
arStr[count++]=sb.toString();
int length=0;
for(;length<arStr.length;length++)
if(arStr[length]==null)
break;
String[] returnStr=new String[length];
for(int i=0;i<length;i++)
returnStr
=arStr;
return returnStr;
}
public static void main(String[] args){
String[] s=splitString("2 1 ms 2 ms 2 ms 10.1.40.125");
for(int i=0;i<s.length;i++)
System.out.println(s
);
}
}
然后就可以打印出
2
1
2
2
10.1.40.125
作者:
陆强强
时间:
2012-7-5 23:59
String s="2 1 ms 2 ms 2 ms 10.1.40.125";
String[] arr=s.split("[\\D&&[^\\.]]+");
\D 非数字字符
&& 并且
^\\. 除了"."符号
+ 若干个
用这个正则切就好了
作者:
孔令金
时间:
2012-7-6 09:06
使用正则表达式是最好的方式了,楼上的方法值得借鉴。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2