2

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

我可以简单地通过使用 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

4 回答 4

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;
}
于 2013-11-10T10:18:28.783 回答
3

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

ss是一个s的数组String你应该使用Arrays#toString(),它是这样实现的:

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);
}
于 2013-11-10T09:58:29.217 回答
0

What you see there is the result of the toString() method when invoked on arrays. It's almost meaningless. What is printed is the type of the array followed by its hashCode.

Use java.util.Arrays.toString() to transform an array into a meaningful String representation.

于 2013-11-10T09:55:16.797 回答
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]+"");
            }
        }
    }
}
于 2016-01-09T20:37:22.010 回答