如何将一个字符串逆序输出?

2025-10-26 08:06:40

1、将一个字符串str的内容颠倒过来,并输出,str的长度不超过100个字符。

#include <stdio.h>

int main()

{  int len,i;

    char str[100];

    gets(str);

    len=strlen(str);

    for(i=len-1;i>=0;i--)

        printf("%c",str[i]);

    return 0;

}

2、输入

    输入包括一行。 第一行输入的字符串。

输出

    输出转换好的逆序字符串。

样例输入

    I am a student

样例输出

    tneduts a ma I

1、输入abcd,输出dcba

import java.lang.StringBuffer;

public class API_String {

 public static void main(String[] args) {

  String str = "abcd";

2、    // 字符串倒序方法一

  char[] ch = str.toCharArray();

  StringBuffer sb = new StringBuffer();

  for (int i = ch.length - 1; i >= 0; i--) {

   sb.append(ch[i]);

  }

  System.out.println(sb.toString());

3、  // 字符串倒序方法二

  StringBuffer sbb = new StringBuffer();

  for (int i = str.length() - 1; i >= 0; i--) {

   sbb.append(str.charAt(i));

  }

  System.out.println(sbb.toString());

4、// 字符串倒序方法三  System.out.println(new StringBuffer(str).reverse().toString()); } 

5、方法一和方法二都是利用已知的索引进行倒序,它们的算法很类似。方法三利用了JAVA中已有API的倒序方法(StringBuffer中的reverse())在API帮助文档里是这么说的:将此字符序列用其反转形式取代。

1、复杂点倒叙

package sun.rain.amazing.str;

import java.util.Optional;

/**

 * Created by sunRainAmazing on SUN_RAIN_AMAZING

 * @author sunRainAmazing

 */

public class ReverseString {

    public static void main(String[] args){

        System.out.println(reverse_substring("12345来濑馑"));

    }

    /**

     * 根据 char[] toCharArray()

     *      将此字符串转换为一个新的字符数组。

     * @param str

     * @return

     */

    public static  String reverse_toCharArray(String str){

        if(isNull(str)) {

            return "";

        }

        StringBuffer sb = new StringBuffer();

        char[] ch = str.toCharArray();

        for(int i=ch.length-1; i>=0; i--){

           sb.append(ch[i]);

        }

        return sb.toString();

    }

    /**

     *  String substring(int beginIndex, int endIndex)

     *      返回一个新字符串,它是此字符串的一个子字符串。

     * @param str

     * @return

     */

    public static  String reverse_substring(String str){

        if(isNull(str)) {

            return "";

        }

        StringBuffer sb = new StringBuffer();

        int length = str.length();

        for(int i=length-1; i>=0; i--){

           sb.append(str.substring(i,i+1));

        }

        return sb.toString();

    }

    /**

     * 判断字符串是否为 null或者是空字符串

     * 控制空指针异常

     * @param str

     * @return

     */

    public static boolean  isNull(String str){

//      return getLength(str) <= 0;

        return getStrLength(str) < 1;

    }

    /**

     * 控制空指针异常

     * 字符串为 null或者是空字符串 --返回0

     * 否则返回对应的长度

     * @param str 字符串

     * @return 不为空 返回真实长度 否则 返回0

     */

    public static int getLength(String str){

        return  Optional.ofNullable(str).orElse("").length();

    }

    /**

     * 注意其语言版本要为 Java8才会支持lambda表达式

     * 否则报错 ---

     * Method references are not supported at this language level

     * 求字符串的长度

     *   控制空指针异常

     * 字符串为 null或者是空字符串 --返回0

     * @param str 字符串

     * @return 不为空 返回真实长度 否则 返回0

     */

    public static int getStrLength(String str){

        return Optional.ofNullable(str).map(String::length).orElse(0);

    }

    /**

     * 原始方式 求字符串的长度

     *   控制空指针异常

     * 字符串为 null或者是空字符串 --返回0

     * @param str 字符串

     * @return 不为空 返回真实长度 否则 返回0

     */

    public static int getStrLength1(String str){

        if(str==null){

            return 0;

        }

        return str.length();

    }

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢