62,614
社区成员
发帖
与我相关
我的任务
分享
public static void main(String...args) throws Exception{
String s="张三23李四1.5王五";
int sep1=-1,sep2=-1;
for(int i=s.length()-1;i>=0;i--){
char c=s.charAt(i);
if('0'<=c&&c<='9'){
if(sep2<0) sep2=i+1;
}else if(c=='.') ;
else if(sep2>0){
sep1=i+1;
break;
}
}
String s1=sep1>0?s.substring(0,sep1):s;
String s2=sep1>0?s.substring(sep1,sep2):"";
String s3=sep2>0?s.substring(sep2):"";
System.out.println(s1+" , "+s2+" , "+s3);
}
public class Split {
/**
* 测试用例
*/
public static void main(String[] args) {
final String message = "Abc2.13张三";
String [] result = split(message);
for(String sub :result){
System.out.println(sub);
}
}
private static final String DIGITs = "1234567890.";
public static String[] split(String message) {
if(message==null)return null;
char[] msg = message.toCharArray();
int endIndex = msg.length;
for(;endIndex>0 && DIGITs.indexOf(msg[endIndex-1])<0;endIndex--);
int beginIndex = endIndex;
for(;beginIndex>0 && DIGITs.indexOf(msg[beginIndex-1])>=0;beginIndex--);
if(beginIndex==endIndex)return new String[]{message};
if(endIndex==msg.length)return new String[]{message.substring(0,beginIndex),message.substring(beginIndex,endIndex)};
return new String[]{message.substring(0,beginIndex),message.substring(beginIndex,endIndex),message.substring(endIndex)};
}
}