用clone方法克隆一个字符串的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 07:06:36
import java.io.*;
public class SJ8_2
{
public static void main(String args[]) throws IOException
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.println("请输入一个字符串:");
String s=br.readLine();
String s1=(String)s.clone();
for(int i=0;i<=s1.length()-1;i++)
{
int n=0;
for(int j=0;j<=s1.length()-1;j++)
if (s.charAt(i)==s1.charAt(j))
n++;
System.out.println("字符串中有"+n+"个字符"+s.charAt(i));
}
}
}
提示错误:clone() 可以在 java.lang.Object 中访问 protected。
请问该如何修改?
我这个程序是想找出字符串中包含的字符和各个字符的个数,clone方法的问题已经解决,现在的问题是输出的问题,比如输入字符串assss,它会输出四次“字符串中有4个字符s”,请问该如何控制,只输出一次?

错误的意思是 在Object类中 对clone()这个方法的修饰符是protected
在这里面你不可以直接调用他.

直接改成String s1= s就行了,不知道你为什么要用clone这个方法?

String 是可以直接赋值的呀

你的意思是不是想看一下,拷备以后字符的比较,如果直接用s1=s;是有两个对象引用,但都是指向同一个对象。可以用s1=s.substring(0);返回的是新的字符串,指向的是不同对象,虽然他们的值是一样的。

clone()方法你重写一下,就可以了

不用使用clone吧;
要用的话先super();吧