Java对字符串进行的操作

本篇总结归纳对字符串或数组进行相关操作问题

  1. 数组倒序输出
  2. 查找字符串中第一次重复的字符
  3. 查找字符串中第一次没有重复的字符
  4. 删除字符串中重复的元素

倒序输出问题

第一种:对于数组

public int[] ArrayReverse(int[] a){
   int len = a.length;
   int[] b = new int[len-1];  //新建数组用于保存倒序后的数组
   for(int i=len-1;i>=0;i--){
       b[len-1-i] = a[i];
   }
   return b;
}

第二种:对于字符串我们可以把它转化成字符数组,在采用for循环来做,或者将字符串转换成StringBuffer,利用StringBuffer的reverse方法

//for循环输出
public String ArrayReverse(String s){
    char[] c = s.toCharArray();
    for(int i = c.length-1; i>=0; i++){
        String rev += c[i];
    }
    return rev;
}
//StringBuffer操作
public String ArrayReverse(String s){
     StringBuffer sb = new StringBuffer(s);
     sb.revese();
     String newS = sb.toString();
     return newS;
}

查找字符串中第一次重复的字符

//查找字符串中第一次重复的字符
public int FindFirstDupChar(String str) {
        int i;
        for (i = 0; i < str.length(); i++) {
            if( str.indexOf(str.charAt(i), i+1) != -1) {
                return i;
            }
        }
        if (i == str.length()) {
            return -1;
        }
        return i;   //返回第一次重复的字符位置
}

查找字符串中第一次没有重复的字符

public int FindFirstSingleChar(String str){
        int i;
        for(i = 0; i<str.length(); i++){
            char c = str.charAt(i);
            if(str.indexOf(c)==str.lastIndexOf(c)){ //判断是否有重复,返回重复位置
                return i;
            }
        }
        if (i == str.length()) {  //没有返回-1
            return -1;
        }
        return i;
}

删除字符串中重复的元素

第一种:通过list集合的contains方法

//删除字符串中重复的元素
public String deleteDupChar(String str){
        
        List list = new ArrayList();
        char[] c = str.toCharArray();
        
        for(int i = 0; i<c.length; i++){
            if(!list.contains(c[i])){  //如果不存在的话添加到集合中
                list.add(c[i]);
            }
        }
        String s = list.toString();
        return s;
}

第二种:利用Set集合中不能添加重复元素的特性

public String deleteDupChar(String str){

    char[] c = str.toCharArray();
    Set s = new HashSet();
    for(int i = 0;i<c.length;i++){
         s.add(c[i])
    }
    return s.toString();
}
原文地址:https://www.cnblogs.com/love-Stefanie/p/6938034.html