java将字符串根据分隔符转换成字符串数组
来源:互联网 发布:天涯明月刀捏脸数据图 编辑:程序博客网 时间:2024/03/29 14:58
public class AnalyticalStr{ /** * 使用StringTokenizer类将字符串按分隔符转换成字符数组 * @param string 字符串 * @param divisionChar 分隔符 * @return 字符串数组 * @see [类、类#方法、类#成员] */ public static String[] stringAnalytical(String string, String divisionChar) { int i = 0; StringTokenizer tokenizer = new StringTokenizer(string, divisionChar); String[] str = new String[tokenizer.countTokens()]; while (tokenizer.hasMoreTokens()) { str[i] = new String(); str[i] = tokenizer.nextToken(); i++; } return str; } /** * 字符串解析,不使用StringTokenizer类和java.lang.String的split()方法 * 将字符串根据分割符转换成字符串数组 * @param string 字符串 * @param c 分隔符 * @return 解析后的字符串数组 */ public static String[] stringAnalytical(String string, char c) { //字符串中分隔符的个数 int count = 0; //如果不含分割符则返回字符本身 if (string.indexOf(c) == -1) { return new String[]{string}; } char[] cs = string.toCharArray(); //过滤掉第一个和最后一个是分隔符的情况 for (int i = 1; i < cs.length -1; i++) { if (cs[i] == c) { count++; //得到分隔符的个数 } } String[] strArray = new String[count + 1]; int k = 0, j = 0; String str = string; //去掉第一个字符是分隔符的情况 if ((k = str.indexOf(c)) == 0) { str = string.substring(k + 1); } //检测是否包含分割符,如果不含则返回字符串 if (str.indexOf(c) == -1) { return new String[]{str}; } while ((k = str.indexOf(c)) != -1) { strArray[j++] = str.substring(0, k); str = str.substring(k + 1); if ((k = str.indexOf(c)) == -1 && str.length() > 0) { strArray[j++] = str.substring(0); } } return strArray; } public static void main(String[] args) { String str = "数据1,数据2,数据3,数据4,数据5,数据6"; for (String tmp : AnalyticalStr.stringAnalytical(str, ',')) { System.out.println(tmp); } }}