假设你有一个字符串“ this is a test string”,写一段代码把这个句子颠倒一下, 颠倒
成下面这样“string test a is this”。
Java 里面有颠倒字符串方法 reverse(),不要用 java 里面已经写好的这个方法,要
自己写个方法,实现这样的功能。
用之前学过的知识去实现,这题会用到字符串类里的方法,if 条件语句,for 循环,等
等。
要对传入的字符串做有效性判断,保证传入的是有效的字符串。

package introduction5;

public class ReverseString {
    //案例一:编写一个能够颠倒字符串顺序的程序(颠倒英文语句单词顺序)
    
    //创建一个名为reverse的方法,用于颠倒字符串的顺序
    private static String reverse(String input) {
        //声明一个名为reverse的字符串变量,用于接收用户传入的值
        String reverse = "";

        //对传入字符串用命令进行有效性判断
        //在使用isEmpty方法的同时使用逻辑运算符“或||”判断传入的字符串input是否为空
        if(input == null||input.isEmpty()) {
        //如果为空则打印“不接受空字符串!!”进行提示
            System.out.println("不接空字符串!!");
            return input;
        }
        
        //当传入的字符串长度为一时,颠倒后就是传入的值本身,考虑到这种情况,因此此处对它进行判断
        if(input.length()<=1) {
        //长度为一时,颠倒后为他本身的状态
            reverse = input;
        //如果大于一,则执行下面的命令
        }else {
        /* 将传入的字符串input用split方法进行分割,同时用数值originalArray进行接收,
         * "this is a test string"这个字符串中每一个单词都带有空格,所以我们可以使用空格
         * 为界限来对字符串进行分割。因为所有的ASCLL码都需要用到“\”加数字来表示,因此java中定义了
         * 一些字母前加“\”来表示常见的那些不能显示的ASCLL字符,如\0,\t,\n等,就称为转义字符,
         * “\\s”代表空格,因为单词间间隔可能不只一个空格,所以需要用“+”来匹配多个空格。
         */
            String[] originalArray = input.split("\\s+");
        /* item用来表示originalArray这个数值里面的值
         * originalArray表示是一个数值
         * 这里使用foreach高级循环来对数值中存储的截取后的字符重新进行排序
         */
        for(String item:originalArray) {
        //reverse将item中的 值与reverse每次循环后结果进行拼接,最终形成想要的结果     
                reverse = item +" "+ reverse;
            }
        }
        //将最终结果返回给调用者
        return reverse.trim();
    }
    
    public static void main(String[] args) {
        //初始化input的值,传入reverse方法
        String input = "this  is a test string";
        //用于接收程序执行后的最终结果
        String output = reverse(input);
        //打印接收的最终结果
        System.out.println(output);
    }
    
    
}

 

版权声明:本文为luohuasheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/luohuasheng/p/9529063.html