思路:

1. 首先将字符串转换成数组,一个数组元素放一个字符。

2. 循环遍历字符串,将所有字符串前后字符调换位置,比如:第一个和最后一个调换,第二个和倒数第三调换,第三个和倒数第三调换,直到所有字符调换完毕。

3. 通过以上两步得到了字符顺序完全颠倒的新字符串。

下面是代码实现:可以将1 2 3 4 5 转换成5 4 3 2 1

 1 public class reverse {
2
3 //public static void main(String[] args)
4 public String swap(String str){
5 //String str = "1 2 3 4 5";
6 char[] arr = str.toCharArray();
7 int begin=0; int end=arr.length-1;
8 while(begin < end) {
9 char temp = arr[begin];
10 arr[begin] = arr[end];
11 arr[end] = temp;
12 begin++;
13 end--;
14 }
15
16 //for (int i = 0; i < arr.length-1; i++)
17 // System.out.println(arr[i]);
18 return new String(arr).toString();
19 }
20 public static void main(String[] args) {
21 String str = "a b c d";
22 System.out.println(new reverse().swap(str));
23 }
24 }

虽然上面的方法可以实现字符串翻转,如果我们想把How are you翻转成you are How呢?上面的方法只能转换为 uoy era woH

其实办法很简单,

以空格为分隔符,将空格之间的字符再次翻转就可以了。

 public class reverse {

 //public static void main(String[] args)
public void swap(char[] arr,int begin,int end){
//String str = "1 2 3 4 5";
while(begin < end) {
char temp = arr[begin];
arr[begin] = arr[end];
arr[end] = temp;
begin++;
end--;
} //for (int i = 0; i < arr.length-1; i++)
// System.out.println(arr[i]);
// return new String(arr).toString(); } public String revWord(String str){
char[] arr = str.toCharArray();
swap(arr,0,arr.length-1);
int begin=0;
for (int i=0;i<arr.length;i++)
{if (arr[i]==' ')
{swap (arr,begin,i-1); begin=i+1;}
} return new String(arr);
}
public static void main(String[] args) {
String str = "how are you";
System.out.println(new reverse().revWord(str));
}
}

java练习 - 字符串反转的更多相关文章

  1. JAVA实现字符串反转,借助字符数组实现

    public static String reverseStr(String str) { int len = str.length(); char ch[] = str.toCharArray(); ...

  2. Java-Runoob-高级教程-实例-字符串:05. Java 实例 - 字符串反转

    ylbtech-Java-Runoob-高级教程-实例-字符串:05. Java 实例 - 字符串反转 1.返回顶部 1. Java 实例 - 字符串反转  Java 实例 以下实例演示了如何使用 J ...

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

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

  4. Java实现字符串反转

    替换原则:index k 的值和 n-k 的值进行交换.(始终记住程序员的n.k都是字符串的实际位置.) 乘除的最基本实现还是来源于移位操作. public String reverse(String ...

  5. JAVA:字符串反转

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

  6. Java 实现字符串反转

    方法一: public class StringReverse { public void swap(char[] arr, int begin, int end) { while(begin < ...

  7. Java将字符串反转的7种方法

    /方法1 递归方法 public static String reverse1(String s) { int length = s.length(); if(length <= 1){ ret ...

  8. java实现字符串反转(原作有点错误,需要看下评论)

    http://blog.csdn.net/shenshen123jun/article/details/9104025

  9. Java实现字符串反转【Leetcode】

    Write a function that reverses a string. The input string is given as an array of characters char[]. ...

随机推荐

  1. Class.forName不能加载abstract原因

    今天看到单例模式时,突然想起,单例模式的情况是不让其他类来构造这个类本身,也就是不让new构造器,所以我们一般都会私有化这个构造器.我们知道abstract类是不能实例化的,我想利用abstract这 ...

  2. 本地数据jqGrid分页

    var mydata=''; $(function() { var str = ''; str += "<span>共<span id='p_total'></ ...

  3. Hybrid App(一)App开发选型

    1.几种app开发模式概述 Native App 即传统的原生APP开发模式,Android基于Java语言,底层调用Google的 API;iOS基于OC或者Swift语言,底层调用App官方提供的 ...

  4. GDKOI 2015 Day1 T2 单词统计Pascal

    我虽然没有参加GDKOI2015,但是我找了2015年的题练了一下. 题意如下: 思路:最大流,因为有多组数据,每次读入一组数据都要清零. a. 将每个点拆分成两个点,例如样例G→G`,再将字母一一编 ...

  5. 如何成为一名hacker?

    很多人问我如何成为黑客,一般来说我总是会扯一大堆废话,告诉他们要时刻保持好奇心,要学会打破规则挑战权威之类的. 但这类话肯定不是提问者想听的.我揣摩了一下他们的心情,他们想问的应该是这个问题:如何学习 ...

  6. CSS倒影

    前面的话   CSS倒影目前只有chrome和safari浏览器支持,且需要添加-webkit-前缀.本文将详细介绍CSS倒影box-reflect 语法 -webkit-box-reflect 初始 ...

  7. PostScript学习:另一种缩写为PS的技术

    1.前言 PostScript是一种编程语言,直译为"后处理脚本"[相对印刷过程而言],学名为页面描述语言.更为详细的解释见维基百科,以及其翻译版百度百科. 值得一提的是,Post ...

  8. PWA - 渐进式网络应用初认识

    Progressive Web Apps 简称PWA,是一种接近原生用户体验的渐进增强的web-app.从浏览器演进而来,沉浸式的体验,改进web的性能低下等.是Google 在2015年提出,今年才 ...

  9. crontab 实现定时脚本执行完毕再执行下一次

    0 4 * * 1 flock -xn /tmp/oneSendTemp.lock -c /home/check_a/h_demand.sh > /dev/null 2>&1

  10. Hadoop集群搭建步骤

    实验性操作是在虚拟机里进行的,除了搭建hadoop本身的操作之外,遇到的其它问题总结如下: 1. 虚拟机挂载windows磁盘: 添加硬件,要保证该硬件此时没有被读写访问等,因为挂载后,该磁盘在宿主机 ...