• 文本项目系列[1]——逆序字符串


    1.需求

    逆转字符串——输入一个字符串,将其逆转并输出。

    比如:输入字符串为:love。则输出为:evol。

    注:在下文中,字符串翻转也是逆序的意思。

    2.思路

    有两种大的思路:

    (1) StringBuffer提供了字符串翻转功能,直接利用API即可。

    (2) 利用String本质是char数组进行字符串逆序。

    3.代码

     1 package com.myeclipse;
     2 
     3 /**
     4  * 逆转字符串——输入一个字符串,将其逆转并输出
     5  * @author MrChen
     6  *
     7  */
     8 public class StringReverse {
     9 
    10     /**
    11      * @param args
    12      */
    13     public static void main(String[] args) {
    14         // TODO Auto-generated method stub
    15         String str = "love";
    16 //        System.out.println("reverseByStringBuffer result: "+reverseByStringBuffer(str));
    17         System.out.println(reverseByCharArray(str));
    18     }
    19     
    20     /**
    21      * 利用string本质是char数组来翻转字符串
    22      * @param str
    23      * @return
    24      */
    25     public static String reverseByCharArray(String str) {
    26         char[] array = new char[str.length()];
    27         str.getChars(0, str.length(), array, 0);
    28         //打桩,查看char数组内容
    29 //        System.out.println(array.length);
    30 //        for(char c : array){
    31 //            System.out.println(c);
    32 //        }
    33         //新建一个目标数组,用来存放翻转以后的字符串
    34         char[] dest = new char[array.length];
    35         //翻转字符
    36         for( int i=0; i<dest.length; i++ ) {
    37             dest[i] = array[array.length-1-i];
    38         }
    39         return new String(dest);
    40     }
    41     
    42     
    43     /**
    44      * 利用StringBuffer提供的字符串反转方法
    45      * @param str
    46      * @return
    47      */
    48     public static String reverseByStringBuffer(String str) {
    49         StringBuffer sb =new  StringBuffer(str);
    50         StringBuffer sb_out = sb.reverse();
    51         return sb_out.toString();
    52     }
    53     
    54 
    55 }
    实现字符串翻转

    4.总结

    (1) 逆序字符串是一个很简单的功能,但思考方向有两个:一个是朝String之上思考(可以认为StringBuffer是包装了String类型的,从StringBuffer构造方法可以验证),一个是往String之下思考(String本质构成,纵深思考)。

    (2) 将字符串转换成char[] 也可以不用现成的API,比如利用for循环,通过索引值的增加逐个得到字符串的每个字符。

    (3) char[] 的翻转也有别的方式,比如最简单的 a=b,b=c,c=a 这种传值交换。

    (4) 如果懂C语言,甚至可以直接用指针进行操作。

  • 相关阅读:
    高中教材记录
    帮我解决逆序问题的网友:@18数院啦啦啦。恶人:16 师大 很菜 刘琳(2196879114) 2:32:49 PM
    丘维声的视频地址,全部课堂
    理工医疗报销电话
    可汗化学和二项式定理的地址
    二次函数问题
    *0000181894BD*---------北大医院条形码
    三月里的小雨
    语文容易读错的字
    mongodb部署
  • 原文地址:https://www.cnblogs.com/helloIT/p/5161709.html
Copyright © 2020-2023  润新知