思路:

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. linux下php-5.4.8.tar.gz编译安装全攻略

    首先安装基础依赖组建,注:这些依赖组建也是LINUX+PHP+MYSQL+APACHE+NGINX+MEMCACHED时必要的系统组件  LANG=C yum -y install gcc gcc-c ...

  2. linux iptable 设置实践

    下面是设置网络时的基本状况: 主机3个网卡: eth0 192.168.0.1/24   内网 eth1 192.168.20.1/24  外网 eth2 192.168.50.1/24  会议室网络 ...

  3. hdu1198--并查集

    Problem Description Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is ...

  4. sqlplus中显示sql执行计划和统计信息

    31 ,32 , 33 ,34  keywords : oracle  storage  structure 最详细讲解: 1:doc 1   logical  storage structure 2 ...

  5. EntityFramework Core Raw Query再叙注意事项

    前言 最近一直比较忙没有太多时间去更新博客,接下来会一直持续发表相关内容博客,上一篇我们讲到了EF Core中的原始查询,这节我们再来叙述一下原始查询,本文是基于在项目当中用到时发现的问题. 话题 我 ...

  6. java基础IO流综合加习题

    IO流初学者在学习时都有一点迷糊,今天我们就讲讲IO流,希望通过讲解可以帮助大家 IO流分为字节流,字符流,缓冲流.我们只要记住这三个就可以了. 1*字节流有:字节输入流(FileInputStrea ...

  7. Python小问题汇总

    现在的时间适合写点最近的小总结,这中间涉及到python/git等问题,我就从python先说起吧. 一.Python 1. Python的异常处理 因为想到自己不断尝试写小程序的话会用到抛出异常信息 ...

  8. svn问题(队列)

    svn执行clean up命令时报错"Previous operation has not finished; run 'cleanup' if it was interrupted&quo ...

  9. Noip 2016

    Day1 思路: 大致是 把一个环拆成链, 找某个人无非是向右找或向左找(即对当前点加或减) 若加上要移动的位置后坐标大于总人数, 就把当前坐标减去总人数, 若减去要移动的位置后坐标小于0, 就把当前 ...

  10. 时间序列 预测分析 R语言

    在对短期数据的预测分析中,我们经常用到时间序列中的指数平滑做数据预测,然后根据不同. 下面我们来看下具体的过程 x<-data.frame(rq=seq(as.Date('2016-11-15' ...