/方法1 递归方法

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);

}

//方法2 通过 charAt(int index)返回char值进行字符串拼接

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;

}

//方法3 把字符串转换成字符数组倒叙拼接然后返回值

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;

}

//方法4 调用StringBuffer中的reverse方法

public static String reverse4(String s) {

return new StringBuffer(s).reverse().toString();

}

//方法5 把字符串转换成字符数组首位对调位置

public static String reverse5(String orig) {

char[] s = orig.toCharArray();

intn = s.length - 1;

int halfLength = n / 2;

for(int i = 0; i <= halfLength; i++) {

chartemp = s[i];

s[i] = s[n - i];

s[n - i] = temp;

}

return new String(s);

}

//方法6

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);

}

//方法7

import java.util.Stack;

public class StringReverse {

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;

}

}

Java将字符串反转的7种方法的更多相关文章

  1. Java实现字符串反转的8种方法

    /** * */ package com.wsheng.aggregator.algorithm.string; import java.util.Stack; /** * 8 种字符串反转的方法, ...

  2. 趣味算法:字符串反转的N种方法(转)

    老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为 ...

  3. Python实现字符串反转的几种方法

    面试遇到的一个特无聊的问题--- 要求:在Python环境下用尽可能多的方法反转字符串,例如将s = "abcdef"反转成 "fedcba" 第一种:使用字符 ...

  4. [转]Python实现字符串反转的几种方法

    #第一种:使用字符串切片 result = s[::-1] #第二种:使用列表的reverse方法 l = list(s) l.reverse() result = "".join ...

  5. javascript 实现字符串反转的两种方法

    第一种方法:利用数组方法 //先split将字串变成单字数组,然后reverse()反转,然后将数组拼接回字串 var str = "abcdef"; str.split(&quo ...

  6. c++中字符串反转的3种方法

    第一种:使用algorithm中的reverse函数 #include <iostream> #include <string> #include <algorithm& ...

  7. C/C++字符串反转的N种方法

    0x00 自己写一个 // 第一种 std::string reverse(std::string str) { std::string res(""); for (int i = ...

  8. Java遍历字符串数组的几种方法

    1. for循环 for(int i = 0; i < fields[].length; i++){ } 2 for each循环 for(String x:fields){ } 3. JDK8 ...

  9. JAVA:字符串反转

    import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Lis ...

随机推荐

  1. Maven执行Install命令时跳过测试

    1. 在pom.xml中添加插件 <!-- 跳过单元测试,不然打包的时候会因为加载不了application.yaml报错 --> <plugin> <groupId&g ...

  2. Excel-宏与VBA-数据类型

    学习视频,本文是观看前视频时做的笔记,手动感谢up. 数据类型 案例 声明一个变量并且赋值 Sub 变量() ' 声明一个变量用Dim,格式就是 Dim 变量名 As 数据类型 Dim Score A ...

  3. 比物理线程都好用的C++20的协程,你会用吗?

    摘要:事件驱动(event driven)是一种常见的代码模型,其通常会有一个主循环(mainloop)不断的从队列中接收事件,然后分发给相应的函数/模块处理.常见使用事件驱动模型的软件包括图形用户界 ...

  4. JS实现单例模式的多种方案

    JS实现单例模式的多种方案 今天在复习设计模式中的-创建型模式,发现JS实现单例模式的方案有很多种,稍加总结了一下,列出了如下的6种方式与大家分享 大体上将内容分为了ES5(Function)与ES6 ...

  5. 分布式RPC框架Dubbo实现服务治理:集成Kryo实现高速序列化,集成Hystrix实现熔断器

    Dubbo+Kryo实现高速序列化 Dubbo RPC是Dubbo体系中最核心的一种高性能,高吞吐量的远程调用方式,是一种多路复用的TCP长连接调用: 长连接: 避免每次调用新建TCP连接,提高调用的 ...

  6. 克鲁斯卡尔(Kruskal)算法

    概览 相比于普里姆算法(Prim算法),克鲁斯卡尔算法直接以边为目标去构建最小生成树.从按权值由小到大排好序的边集合{E}中逐个寻找权值最小的边来构建最小生成树,只要构建时,不会形成环路即可保证当边集 ...

  7. Journey to the future begins

    当提交申请的那一刻,我就更加确认了自己想要走的路,慢慢一路向上,追求自己想要的生活! 2021.5.18 wzb

  8. 【Cocos2d-x】屏蔽Emoji并解决由于Emoji导致的崩溃问题

    IOS的Emoji表情因为编码问题,在Android手机上无法正常显示,如果当前的cc.Label节点使用的是系统字,在系统字库中找不到对应编码的字符,会导致崩溃. 为了解决这个问题,又要兼顾新老版本 ...

  9. ubuntu16.04 通过命令,修改屏幕分辨率

    ubuntu16.04 通过命令,修改屏幕分辨率 l185979505 2016-10-19 08:15:54 20293 收藏 5展开第一次写博客,,,好激动,,首先通过命令: xrandr 查看可 ...

  10. MyBatis 延迟加载(十四)

    什么是延迟加载 延迟加载又叫懒加载,也叫按需加载,也就是说先加载主表信息,需要的时候,再去加载从表信息.代码中有查询语句,当执行到查询语句时,并不是马上去数据库中查询,而是根据设置的延迟策略将查询向后 ...