题目描述
对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12 输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。
输入包括一个由字母和数字组成的字符串,其长度不超过100。
核心代码:public void find(String a)
{
char[] b=new char[a.length()];
b=a.toCharArray(); //将a的值赋给字符数组b
for(int i=0;i<b.length;i++){
if(b[i]!='*'){
boolean first=true; //设置一个标识符,表示该字符是否是第一次访问
for(int j=I+1;j<b.length;j++) { //开始找重复字符
if(b[I]==b[j]) //当找到重复字符时
if(first) //如果是第一次访问该字符
{
System.out.print(""+b[i]+':'+i+',');
System.out.print(""+b[j]+':'+j);
b[j]='*'; //访问过的字符就设为 *,避免再次访问
first=false; //将标识符设为false
}else{}
System.out.print(""+','+b[j]+':'+j);
b[j]='*';
}
}}
b[i]='*';
if(!first)
System.out.println();
}}}}
网友评论