用JAVA将字符串中不同类型字符进行分割

比如一个字符串“asd255sd+sd511ds”要分割为“asd”“255”“sd”“+”“sd”“511”“ds”

刚刚编写的 实测好用 拷贝getlist和gettype两个方法 给getlist里传入你想要处理的字符串就可以了!!!

package test;

import java.util.ArrayList;
import java.util.List;

public class main {

public static void main(String[] args) {
// TODO Auto-generated method stub
String k = "sdf345+.1dfa";
//data就是你想要的结果 方法就是getlist(String)
List<String> data = getlist(k);
}
public static List<String> getlist(String str){
int beforeCharTypeFlg=0;
int nowCharTypeFlg=0;
String subString = "";
List<String> data = new ArrayList<String>();
for (int i=0;i<str.length();i++){
String nowchar = str.substring(i, i+1);
nowCharTypeFlg = gettype(nowchar);
if(subString.equals("")){
subString = nowchar;

}else{
if(nowCharTypeFlg == beforeCharTypeFlg){
subString += nowchar;
}else{
String temp = subString;
data.add(temp);
subString = nowchar;
System.out.println(temp);
}
if(i == str.length()-1){
String temp = subString;
data.add(temp);
System.out.println(temp);
}
}
beforeCharTypeFlg = nowCharTypeFlg;
}
return data;
}

public static int gettype(String onechar){
String letter_reg = "[a-zA-Z]";
String number_reg = "[0-9]";

if(onechar.matches(letter_reg)){
return 0;
};
if(onechar.matches(number_reg)){
return 1;
};
return 2;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-16
public class StringSplit {
public static void main(String[] args) {
String sourceStr = "1,2,3,4,5";
String[] sourceStrArray = sourceStr.split(",");
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}

// 最多分割出3个字符串
int maxSplit = 3;
sourceStrArray = sourceStr.split(",", maxSplit);
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
}
}
第2个回答  2016-05-16
判断字符是否是数字
第3个回答  2016-05-16
public class StringSplit {
public static void main(String[] args) {
String sourceStr = "1,2,3,4,5";
String[] sourceStrArray = sourceStr.split(",");
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}

// 最多分割出3个字符串
int maxSplit = 3;
sourceStrArray = sourceStr.split(",", maxSplit);
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
}
}
第4个回答  2016-05-16
判断字符是否是数字
相似回答