在不使用String.split()的情况下将split的值存储在String []数组中

时间:2015-03-24 11:08:12

标签: java

我想转换下面的代码,在不使用String.split()的情况下将split字符串存储在字符串数组中,因为我正在生产环境中使用旧版java 1.2

String strings ="1,2,3,4;5,6,7,8";
String[] output= strings.split(";");

如何实现这一目标?

5 个答案:

答案 0 :(得分:2)

使用StringTokenizer,它自版本1以来一直存在的javadoc。

只做

StringTokenizer strTokenizer = new StringTokenizer("1,2,3,4;5,6,7,8", ";");

并在strTokenizer.hasMoreElements()时进行迭代。

答案 1 :(得分:2)

StringTokenizer以来StringTokenizer以来,您必须使用JDK 1.0。您最好还要更改生产中的JDK

StringTokenizer stringTokenizer=new StringTokenizer("1,2,3,4;5,6,7,8",",;");
String[] arr=new String[stringTokenizer.countTokens()];
int i=0;
while (stringTokenizer.hasMoreTokens()){
   arr[i]=stringTokenizer.nextToken();
   i++;
}

答案 2 :(得分:1)

    String strings ="1,2,3,4;5,6,7,8";
    StringTokenizer tok = new StringTokenizer(strings, ";,");
    String[] coordinates = new String[tok.countTokens()];

    int j = 0;
    while (tok.hasMoreTokens()) {
        coordinates[j++] = tok.nextToken();
    }

    System.out.println(Arrays.toString(coordinates));
  

[1,2,3,4,5,6,7,8]

您可以指定分隔符。例如,如果你只有;

答案 3 :(得分:0)

不熟悉1.2限制......你可以手动完成:首先,计算';'出现以便您可以创建坐标数组,然后使用可用的String方法遍历原始字符串并连接结果并停止每个';'

答案 4 :(得分:0)

您可以将扫描仪类用于相同目的。

  String s="1,2,3,4;5,6,7,8";
  Scanner sc=new Scanner(s).useDelimiter(";");
while(sc.hasNext())
 {
  System.out.println(sc.next());
 }