java将字符串转换成字符串数组_java将字符串根据分隔符转换成字符串数组

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);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值