手撕代码全集(字符串)

主要记录碰到的代码,更多见

字符串的空格替换为%20

public static String replaceBlank(String str){
          
    
    StringBuffer sb = new StringBuffer();
    for(int i = 0; i < str.length(); i++){
          
   
        if(str.charAt(i) == " "){
          
   
            sb.append("%20");
        }else{
          
   
            sb.append(str.charAt(i));
        }
    }
    return sb.toString();
}

输出给定所有字符的所构成的字符串组合

//传入的HashSet<String>作为最后String的去重容器:如:chars = {a,a,c}有重复字符;
public static void getAllString(char[] chars, HashSet<String> set){
          
   
    if(chars != null && chars.length >= 1){
          
   
        getString(chars, 0, chars.length-1, set);
    }
}
public static void getString(char[] chars, int start, int end, HashSet<String> set){
          
     
    if(start == end){
          
   
        set.add(chars.toString());
    }else{
          
   
        char temp = null;
        for(int i = start; i <= end; i++){
          
   
            temp = chars[i];
            chars[i] = chars[start];
            chars[start] = temp;
            getString(chars, start+1, end, set);
            temp = chars[i];
            chars[i] = chars[start];
            chars[start] = temp;
        }
    }
}
经验分享 程序员 微信小程序 职场和发展