import java.io.*;
public class Zo{
public static void main(String arg[]) throws IOException {
InputStreamReader str=new InputStreamReader(System.in);
BufferedReader str1=new BufferedReader(str);
String s=str1.readLine();
String ch="";  for(int i=s.length();i>=0;i--){
  int j=0;
  while( j<i){
  if(s.charAt(i)==s.charAt(j))
  break;
  else j++;
  }
         System.out.println(s.charAt(i));
   
   }
    
}
}
为什么我这样写不能输出啊!

解决方案 »

  1.   

    越界了, for(int i=s.length();i>=0;i--) 换成for(int i=s.length()-1;i>=0;i--)
      

  2.   

    1 i=s.length()-1
    2 从头开始找是否有与最后一个元素相同的。 
      可是找的了,你没有进行输出操作。而是
      break。应该删除此时的j和i位置上的两
      个元素。
      

  3.   

    for (int i = 0; i < s.length(); i++) {
    s = s.substring(0, i + 1) + s.substring(i + 1).replaceAll(""+s.charAt(i), "");
    }
    ===
    代码少但效率不高
      

  4.   

    import java.io.*;
    public class Zo{
    public static void main(String arg[]) throws IOException {
    public static void main(String arg[]) throws IOException {
    InputStreamReader str=new InputStreamReader(System.in);
    BufferedReader str1=new BufferedReader(str);
    String s=str1.readLine();for (int i = 0; i < s.length(); i++) {
    s = s.substring(0, i + 1) + s.substring(i + 1).replaceAll(""+s.charAt(i), "");
    }
    System.out.println(s);
    }
    }
      

  5.   

    除了正则表达式,还是正则表达式!
    这是用js写的代码: 
    var s="abacabefgeeii" 
    var s1=s.replace(/(.).*\1/g,"$1") 
    var re=new RegExp("["+s1+"]","g") 
    var s2=s.replace(re,"")