首先,我是Java的新手,我多次遇到过这个问题。我试图在字符串中返回char的出现次数,并实现了一个名为countcharacters的方法,如下所示:
public static int[] countcharacters(String s)
{
String alphabet="abcdefghijklmnopqrstuvwxyz";
int[] sircounter=new int[alphabet.length()];
for(int i=0;i<sircounter.length;i++)
{
sircounter[i]=0;
}
for(int j=0;j<alphabet.length();j++)
{
for(int i=0;i<s.length();i++)
{
if(alphabet.charAt(j)==(s.charAt(i)))
{
sircounter[j]++;
}
}
}
return sircounter;
}
换句话说,每次在我的字符串中找到字母表中的字符时,方法的参数,来自sircounter的每个位置的零值随着出现次数递增。 我想按位置打印阵列位置,但它没有工作,如果 我在main方法中做了类似的事情:
String text="hannah";
System.out.println(Class.countcharacters(text));
我得到一个十六进制代码:[我@ 659e0bfd,我不明白。 你可以帮帮我吗? 非常感谢,祝你有个美好的一天!
答案 0 :(得分:1)
这种情况正在发生,因为数组被视为java中的一个对象。当你尝试在java中打印一个对象时,你得到它的哈希码(只要该对象没有定义toString()!)< / p>
试试这个 -
String text="hannah";
int counter[]=Class.countcharacters(text);
for(int i=0;i<counter.length;i++){
System.out.print(counter[i]+" ");
}