我想转换下面的代码,在不使用String.split()的情况下将split字符串存储在字符串数组中,因为我正在生产环境中使用旧版java 1.2
String strings ="1,2,3,4;5,6,7,8";
String[] output= strings.split(";");
如何实现这一目标?
答案 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());
}