我有一个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) );
}
}
}
答案 0 :(得分:3)
在Java中,每个对象都有toString()
方法,默认显示类名表示,然后添加@
,然后添加哈希码。
ss
是String
的数组。您应该使用已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]+"");
}
}
}
}