如何将矢量转换为数组?

时间:2014-09-18 04:00:15

标签: java arrays

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()方法,我已经理解如何将其作为字符串进行操作,但是如果有人可以请求帮助,则无法将矢量转换为数组我将非常感激。另外,我不知道ArraylistVector会更方便吗?

3 个答案:

答案 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;

    }