字符串反转几种方法
package com.yasinda.demo3; import java.util.Stack; /** * @author 风清扬 * @version 1.0 * @data 2020/8/4 **/ //字符串反转 public class StringReservers { public static void main(String[] args) { String s = reverse04("123456"); } //使用栈的方法实现 public static String reverse01(String str) { //非空校验 /*Optional<String> optional = Optional.ofNullable(str); if (!optional.isPresent()) { return str; }*/ if (str == null || str.length() <= 1) { return str; } char[] chars = str.toCharArray(); Stack<Object> stack = new Stack<>(); for (char aChar : chars) { stack.push(aChar); } StringBuilder builder = new StringBuilder(); int length = str.length(); for (int i = 0; i < length; i++) { builder.append(stack.pop()); } String string = builder.toString(); return string; } //首尾字符调换顺序 public static String reverse02(String str) { if (str == null || str.length() <= 1) { return str; } char[] array = str.toCharArray(); Character temp = ' '; for (int i = 0; i < array.length / 2; i++) { temp = array[i]; array[i] = array[array.length - 1 - i]; array[array.length - 1 - i] = temp; } return new String(array); } //递归 public static String reverse03(String str) { if (str == null || str.length() <= 1) { return str; } return reverse03(str.substring(1)) + str.charAt(0); } //使用StringBuffer/StringBuilder的reverse方法 public static String reverse04(String str) { if (str == null || str.length() <= 1) { return str; } StringBuilder stringBuilder = new StringBuilder(str); // StringBuffer stringBuffer = new StringBuffer(str); return stringBuilder.reverse().toString(); } }
不经历风雨,怎能见彩虹?做一个快乐的程序员。

浙公网安备 33010602011771号