import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
//Write your own version of the x.split()method
public class Splitting {
public static void main(String[] args) {
System.out.println(mySplit("A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/t/s/t/u/v/w/x/y/z/", "/"));
}
public static String[] mySplit(String x, String y) {
{
Vector<String> Final = new Vector<String>();
String f = null;
String z = null;
for (int i = 0; i < x.length(); i++) {
z = (x.substring(x.indexOf(y), x.indexOf(y) + 1));
f = x.replace(z, "\n");
Final.add(f);
}
String[] Finale = Final.toArray(new String[Final.size()]);
System.out.println(Finale[0]);
return Finale;
}
}
}
这是高中的编码工作,我必须编写自己的.Split()
方法,我已经理解如何将其作为字符串进行操作,但是如果有人可以请求帮助,则无法将矢量转换为数组我将非常感激。另外,我不知道Arraylist
或Vector
会更方便吗?
答案 0 :(得分:1)
不要使用Vector
,因为它已被弃用。使用ArrayList
代替。
如果您真的想这样做,可以使用toArray()方法将Vector
转换为Array
。
例如:
Vector<String> vector= new Vector<>();
String [] s = vector.toArray(new String[vector.size()]);
您也可以尝试这种方式
Vector<String > vector = new Vector<>();
String[] arr=new String[vector.size()];
int a=0;
for(String i:vector){
arr[a]=i;
a++;
}
答案 1 :(得分:1)
您可以将字符串向量转换为字符串数组,如下所示:
Vector<String> vec = new Vector<>();
vec.add("A");
vec.add("b");
vec.add("C");
String[] arr = new String[vec.size()];
vec.copyInto(arr); // that's how you "convert" it
System.out.println(StringUtils.join(Arrays.asList(arr), ",")); // debug printing
那就是说,我同意Ruchira Gayan Ranaweera:你不应该使用Vector - 而是使用ArrayList(Vector是同步的,这使得它的性能很重)。
答案 2 :(得分:0)
我使用c#代码创建自定义分割功能。希望你能在java中了解如何做到这一点。
private static List<string> Split(string x, string y)
{
var returnVal = new List<string>();
int i = 0;
foreach (char c in x)
{
if (c != '/')
returnVal.Add(c.ToString());
}
return returnVal;
}