输入字符串里的字符,如何让其不重复输出 String A;A="abcdefabccdeefg"for(int i=0;i<A.length();i++){ System.out.print(A.charAt(i));}输入的字符是重复的,如何让其输入的字符是不重复的呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String A;A="abcdefabccdeefg"String temp ="";for(int i=0;i<A.length();i++){ if (temp .indexOf(A.charAt(i))!=-1) { System.out.print(A.charAt(i)); temp = temp + A.charAt(i); }} 逐个字符取出来放Set,然后从Set打印,Set的对象是不可重复的 lz是方法不错,巧妙,只if (temp .indexOf(A.charAt(i))!=-1) 这判断语句写反了,应该写if (temp .indexOf(A.charAt(i))==-1) {======================String A; A="abcdefabccdeefg"; String temp =""; for(int i=0;i<A.length();i++){ if (temp .indexOf(A.charAt(i))==-1) { System.out.print(A.charAt(i)); temp = temp + A.charAt(i); } } 谢谢大家,问题已经解决了,不过不太明白temp.indexOf(A.charAt(i))==-1是什么意思。记得indexOf()的作用是取字符在变量的第几位。写在这里的作用不太明白? temp.indexOf(A.charAt(i))==-1A.charAt(i)是指A里面的第i+1个字符。如果temp.indexOf(A.charAt(i))=-1说明字符串temp里面不包含字符A.charAt(i).假如包含的话indexOf()方法返回的是字符所在的索引号。 我的方法用了StringBufferimport java.util.*;public class Untitled1 { public static void main(String[] args) { String x = "abc45345dfsadfdfhgfhda"; StringBuffer strB = new StringBuffer(x); ArrayList al = new ArrayList(); for(int i=0 ; i<strB.length() ; i++) { for(int j=0 ; j<strB.length(); j++) { if(strB.charAt(i) == strB.charAt(j) && i!=j) { al.add(strB.charAt(i)); strB.deleteCharAt(i); strB.deleteCharAt(j-1); } } } System.out.println("原字符串为:"+x+"\n新字符串为:"+strB); System.out.print("重复的字符为:"); for(int i=0 ; i<al.size();i++){ System.out.print(al.get(i)+","); } }}输出结果原字符串为:abc45345dfsadfdfhgfhda新字符串为:b5dshgda重复的字符为:a,4,5,f,d,f,h, String[] strArr = str.split(","); String strAim = ","; for (int i = 0; i < strArr.length; i++) { if (strArr.equals("")) continue; if (strAim.indexOf("," + strArr + ",") == -1) { strAim = strAim + strArr + ","; } } if (!strAim.equals(",")) strAim = strAim.substring(1, strAim.length() - 1); else strAim = ""; return strAim; 小问题 找规律 ,3,-1,-3, 谁知道 为什么没有显示呢? 大家帮我看看这题,帮我解释下! 对于equals和==的比较 有人能有函数把地址给打出来吗? 如何实现鼠标停留到某Component上时,出现一个类似批注或注释框? for 循环集合,集合没用泛型为什么报错 求救:applet通过数字签名如何执行本机的程序? 我是一个刚刚学习java的菜鸟,写了一点程序就是不能执行,编译通过,看了老半天也没有看出毛病来! import Java.sql.*; 报错包 Java.sql 不存在?请帮帮我! 很菜的问题,请指教,谢谢! 求助:JNI中中文的问题该如何解决啊??(急)
A="abcdefabccdeefg"
String temp ="";
for(int i=0;i<A.length();i++){
if (temp .indexOf(A.charAt(i))!=-1) {
System.out.print(A.charAt(i));
temp = temp + A.charAt(i);
}
}
if (temp .indexOf(A.charAt(i))==-1) {
======================
String A;
A="abcdefabccdeefg";
String temp ="";
for(int i=0;i<A.length();i++){
if (temp .indexOf(A.charAt(i))==-1) {
System.out.print(A.charAt(i));
temp = temp + A.charAt(i);
}
}
记得indexOf()的作用是取字符在变量的第几位。写在这里的作用不太明白?
A.charAt(i)是指A里面的第i+1个字符。
如果temp.indexOf(A.charAt(i))=-1说明字符串temp里面不包含字符A.charAt(i).
假如包含的话indexOf()方法返回的是字符所在的索引号。
public class Untitled1 {
public static void main(String[] args) {
String x = "abc45345dfsadfdfhgfhda";
StringBuffer strB = new StringBuffer(x);
ArrayList al = new ArrayList();
for(int i=0 ; i<strB.length() ; i++)
{
for(int j=0 ; j<strB.length(); j++)
{
if(strB.charAt(i) == strB.charAt(j) && i!=j)
{
al.add(strB.charAt(i));
strB.deleteCharAt(i);
strB.deleteCharAt(j-1);
}
}
}
System.out.println("原字符串为:"+x+"\n新字符串为:"+strB);
System.out.print("重复的字符为:");
for(int i=0 ; i<al.size();i++){
System.out.print(al.get(i)+",");
}
}
}输出结果
原字符串为:abc45345dfsadfdfhgfhda
新字符串为:b5dshgda
重复的字符为:a,4,5,f,d,f,h,
String strAim = ",";
for (int i = 0; i < strArr.length; i++) {
if (strArr.equals("")) continue;
if (strAim.indexOf("," + strArr + ",") == -1) {
strAim = strAim + strArr + ",";
}
}
if (!strAim.equals(","))
strAim = strAim.substring(1, strAim.length() - 1);
else strAim = "";
return strAim;