不使用split(String regex)方法拆分String数组

时间:2013-11-10 09:52:21

标签: java arrays string

我有一个String数组,其中包含每个元素中的“_”字符,我想摆脱这些字符。

我只需使用String [] split(String regex)方法即可完成此任务,但我不想通过此函数进行此操作,因为我稍后会在J2ME中使用此代码。

我编写了一个代码来执行此任务,但输出是奇怪的字符 [Ljava.lang.String; @ 19821f [Ljava.lang.String; @ addbf1 !!!

public class StringFragementation {

static public   String [] mymethod(String [] mystring)
{

   String ss [] =new String[mystring.length];

   for(int j=0;j<mystring.length;j++)

   {
   ss[j] =  mystring[j].replace('_',',');

   }

   return ss ;

   }
 public static void main(String [] args)

  {

   String []  s = {"Netherlands_Iceland_Norway_Denmark","Usa_Brazil_Argentina"};

   for(int i=0;i<s.length;i++)
   {

 System.out.println("" + mymethod(s) );

   }

       }

       }  

4 个答案:

答案 0 :(得分:3)

在Java中,每个对象都有toString()方法,默认显示类名表示,然后添加@,然后添加哈希码。

ssString数组。您应该使用已Arrays#toString()实施的this way

3860     public static String toString(int[] a) { {
3861        if (a == null)
3862            return "null";
3863        int iMax = a.length - 1;
3864        if (iMax == -1)
3865            return "[]";
3866
3867        StringBuilder b = new StringBuilder();
3868        b.append('[');
3869        for (int i = 0; ; i++) {
3870            b.append(a[i]);
3871            if (i == iMax)
3872                return b.append(']').toString();
3873            b.append(", ");
3874        }
3875    }

或者,您可以这样做:

for(String str : mymethod(s)) {
    System.out.println(str);
}

答案 1 :(得分:3)

我修改了你的代码。它会给你想要的输出。使用以下代码

public static void main(String[] args) {
    String[] s = {"Netherlands_Iceland_Norway_Denmark", "Usa_Brazil_Argentina"};
    String[] finalString = mymethod(s);        
    for (int i = 0; i < s.length; i++) {
        System.out.println("" + finalString[i]);
    }
}

static public String[] mymethod(String[] mystring) {
    String ss[] = new String[mystring.length];
    for (int j = 0; j < mystring.length; j++) {
        ss[j] = mystring[j].replace('_', ',');
    }
    return ss;
}

答案 2 :(得分:0)

您看到的是在数组上调用时toString()方法的结果。这几乎毫无意义。打印的是数组的类型,后跟hashCode。

使用java.util.Arrays.toString()将数组转换为有意义的字符串表示形式。

答案 3 :(得分:0)

public class MyDisticntElements {

    public static void main(String[] args)
    {
        int [] nums = {2,3,4,5,8,7,7};
        MyDisticntElements.printDuplicate(nums);
    }
    public static void printDuplicate(int[] arr)
    {
        for(int i =0; i<arr.length; i++)
        {
            boolean duplicate = false;
            for(int j = 0; j<i; j++)
            {
                if(arr[i] == arr[j])
                {
                    duplicate = true;
                    break;
                }
            }
            if(duplicate)
            {
                System.out.println(arr[i]+"");
            }
        }
    }
}