下面自己写的一段JAVA代码(如下):不知道错在了,求高手指导下。

实现功能:输入一段英文字符串,统计其中字母n和o的出现次数:
class Statistic
{
private String str;
private char chr;
private int count = 0;
private char ch[];
public void setStr(String s)
{
this.str = s;
}
public String getStr()
{
return str;
}
public void setChr(char c)
{
this.chr=c;
}
public char getChr()
{
return chr;
}
public char toChar(String str)
{
char ch[] = str.toCharArray();
return ch[];
}
public String count(char ch[])
{
for(int i=0;i<=ch.length;i++)
{
if(ch[i]==chr)
{
count++;
}
}
return "chr在本字符串中的个数为:"+count;
}
}
public class Test3
{
public static void main(String ags[])
{
Statistic a = new Statistic();
a.setStr("I want ouy to know one thing");
System.out.println("**************统计n******************");
a.setChr('n');
a.count();
System.out.println("**************统计o******************");
a.setChr('o');
a.count();
}
}

第1个回答  2012-01-16
public class Statistic
{
private String str;
private char chr;
private int count = 0;
private char ch[];
public void setStr(String s)
{
this.str = s;
}
public String getStr()
{
return str;
}
public void setChr(char c)
{
this.chr=c;
}
public char getChr()
{
return chr;
}
public char[] toChar(String str)
{
char[] ch = new char[str.length()];
ch = str.toCharArray();
return ch;
}
public String count()
{
count=0;
char ch[]=this.toChar(this.getStr());
for(int i=0;i<ch.length;i++)
{
if(this.getChr()==ch[i])
{
count++;
}
}
return this.getChr()+"在本字符串中的个数为:"+String.valueOf(count);
}
public static void main(String ags[])
{
Statistic a = new Statistic();
a.setStr("I want ouy to know one thing");
System.out.println("**************统计n******************");
a.setChr('n');
String str=a.count();
System.out.println(str);
System.out.println("**************统计o******************");
a.setChr('o');
String str1=a.count();
System.out.println(str1);
}
}
已经更改追问

编译成功,但是运行出现异常:java.lang.NoSuchMethError: main

追答

我放到一个类中
你是两个类
都是在Statistic
类中实现
你可以拷贝出来就可以啦
public class Test3
{
public static void main(String ags[])
{
Statistic a = new Statistic();
a.setStr("I want ouy to know one thing");
System.out.println("**************统计n******************");
a.setChr('n');
String str=a.count();
System.out.println(str);
System.out.println("**************统计o******************");
a.setChr('o');
String str1=a.count();
System.out.println(str1);
}
}

第2个回答  2012-01-16
class Statistic
{
private String str;
private char chr;
private int count = 0;
private char ch[];
public void setStr(String s)
{
this.str = s;
}
public String getStr()
{
return str;
}
public void setChr(char c)
{
this.chr=c;
}
public char getChr()
{
return chr;
}
public char[] toChar(String str)
{
char ch[] = str.toCharArray();
return ch;
}

public String count(char ch[])
{
for(int i=0;i<ch.length;i++)
{
if(ch[i]==chr)
{
count++;
}
}
return "chr在本字符串中的个数为:"+count;

}
}
public class Test3
{
public static void main(String ags[])
{
Statistic a = new Statistic();
a.setStr("I want ouy to know one thing");
System.out.println("**************统计n******************");
a.setChr('n');
System.out.println(a.count(a.toChar(a.getStr())));
System.out.println("**************统计o******************");
a.setChr('o');
System.out.println(a.count(a.toChar(a.getStr())));

}
}
第3个回答  2012-01-16
public char toChar(String str)
{
char ch[ ] = str.toCharArray();
return ch[ ];
}
这个函数写错了,返回值应该是char[ ], 代码的返回语句应该是 return ch;
且count()函数没有传入参数
第4个回答  2012-01-16
原来的代码出现的错误比较多,实现很冗余,给你个简约的实现参考:
public class Statistic {

public int count(String str, char ch) {
int count = 0;
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == ch) {
count++;
}
}
System.out.println("**************统计字符'" + ch + "'出现次数******************");
System.out.println("字符'" + ch + "'在字符串\"" + str + "\"出现的次数为:" + count);
return count;
}

public static void main(String ags[])
{
String statStr = "I want ouy to know one thing";
Statistic a = new Statistic();
a.count(statStr, 'n');
a.count(statStr, 'o');
}
}
第5个回答  2012-01-17
public char toChar(String str)
{
char ch[] = str.toCharArray();
return ch[];
}
这个方法写的不对 str.toCharArray()这个东西是一个字符数组

a.count();
在调用的时候没有往里面传递参数
目测就这2个错误
相似回答