zoukankan      html  css  js  c++  java
  • 字符串操作(字符数统计及字符串反转)

    1.字符统计

    package com.homework;
    
    //统计字符串中相同字符出现的次数
    
    public class StatisticString {
        
            public static void main(String[] args) {
                
            
        
    
        
            String str = "abcdeaaadfec53543543253@!#@!#$$@@!@#@!#!@3";
            Boolean flag; 
            int count;
            for (int i = 0; i < str.length(); i++)
            {
                flag = true;
                count=0;
                for (int k = 0; k < i; k++)
                {
                    if (str.charAt(i) == str.charAt(k)) flag = false;
                }
                if (flag == true)
                {
                    for (int j = 0; j < str.length(); j++)
                    {
                        if (str.charAt(i) == str.charAt(j))
                        {
                            count++;
                        }
                    }
                    System.out.println(str.charAt(i) + "出现" + count + "次");
                }
            }
        }
    }

    2.字符串反转

    package com.homework;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;
    import java.util.Scanner;
    
    //字符串反转,如I love java 将反转成  java love I. 
    public class StringReverse {
    
        public void swap(char[] arr, int begin, int end) {
            while(begin < end) {
                char temp = arr[begin];
                arr[begin] = arr[end];
                arr[end] = temp;
                begin++;
                end--;
            }
        }
        
        public String swapWords(String str) {
            char[] arr = str.toCharArray();
            swap(arr, 0, arr.length - 1);
            int begin = 0;
            for (int i = 1; i < arr.length; i++) {
                if (arr[i] == ' ') {
                    swap(arr, begin, i - 1);
                    begin = i + 1;
                }
            }
    
            return new String(arr);
        }
        
        public static void main(String[] args) {
            //缺点:one前要有空格,不然“one”将反转为“eno”
            
            String str = " one two three four five";
            System.out.println(new StringReverse().swapWords(str));
            
            
            //******************************************************
            //以上为全部程序,下面为补充
            
            //******************************************************
            //利用jdk自带方法实现以上功能
            
            //public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            
            String str1 = sc.nextLine();
            
            String[] sArr = str1.split(" ");//I love java
            
            List<String> list = new ArrayList<String>();
            
            list = Arrays.asList(sArr);
            
    //        for(int i=0;i<sArr.length;i++){
    //            list.add(sArr[i]);
    //        }
            
            Collections.reverse(list);
            
            for(String word:list){
                System.out.print(word+" ");
            }
        //   }
            //结果同上
            //****************************************************************************
            
            
            //补充:
            //利用jdk自带方法将字符串反转(如将“abcd”反转为“dcba”)
            
            str="abxggsfd";
            System.out.println(new StringBuilder(str).reverse().toString());
        }
        
        // 结果为  dfsggxba
        
    }

    控制台输出

    补充:你知道 “ 回 ” 字有四种写法吗?????????????????

                   回、囘、囬、囗

       七种字符串反转方法

    import java.util.Stack;
    public class StringReverse {
      
     public static String reverse1(String s) {
      int length = s.length();
      if (length <= 1)
       return s;
      String left = s.substring(0, length / 2);
      String right = s.substring(length / 2, length);
      return reverse1(right) + reverse1(left);
     }
      
     public static String reverse2(String s) {
      int length = s.length();
      String reverse = "";
      for (int i = 0; i < length; i++)
       reverse = s.charAt(i) + reverse;
      return reverse;
     }
      
     public static String reverse3(String s) {
      char[] array = s.toCharArray();
      String reverse = "";
      for (int i = array.length - 1; i >= 0; i--)
       reverse += array[i];
      
      return reverse;
     }
      
     public static String reverse4(String s) {
      return new StringBuffer(s).reverse().toString();
     }
      
     public static String reverse5(String orig) {
      char[] s = orig.toCharArray();
      int n = s.length - 1;
      int halfLength = n / 2;
      for (int i = 0; i <= halfLength; i++) {
       char temp = s[i];
       s[i] = s[n - i];
       s[n - i] = temp;
      }
      return new String(s);
     }
      
     public static String reverse6(String s) {
      
      char[] str = s.toCharArray();
      
      int begin = 0;
      int end = s.length() - 1;
      
      while (begin < end) {
       str[begin] = (char) (str[begin] ^ str[end]);
       str[end] = (char) (str[begin] ^ str[end]);
       str[begin] = (char) (str[end] ^ str[begin]);
       begin++;
       end--;
      }
      
      return new String(str);
     }
      
     public static String reverse7(String s) {
      char[] str = s.toCharArray();
      Stack<Character> stack = new Stack<Character>();
      for (int i = 0; i < str.length; i++)
       stack.push(str[i]);
      
      String reversed = "";
      for (int i = 0; i < str.length; i++)
       reversed += stack.pop();
      
      return reversed;
     }
      
    }
  • 相关阅读:
    postgresql强制删除数据库
    oracle ORA-31655
    oracle 删除表空间与用户
    Nginx 配置文件说明
    docker学习笔记---基本命令
    SSH的 Write failed: Broken pipe 问题
    nginx 修改文件上传大小限制
    "echo 0 /proc/sys/kernel/hung_task_timeout_secs" disable this message
    Centos8 配置静态IP
    Prometheus Node_exporter 详解
  • 原文地址:https://www.cnblogs.com/zjfjava/p/6071589.html
Copyright © 2011-2022 走看看