描述:给我一个字符串,例如I love java,输出: java love I

 

方法一

 public class StringReverse {

     public void swap(char[] arr, int begin, int end) {
while(begin < end) {      
char temp = arr[begin];
arr[begin] = arr[end];
arr[end] = temp;
begin++;
end--;
}
}
//I love java
public String swapWords(String str) {
char[] arr = str.toCharArray();
swap(arr, 0, arr.length - 1);    //第一次反转,结果为avaj evol I
int begin = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] == ' ') {       //第二次和三次反转,结果分别为java evol I和java love I
swap(arr, begin, i - 1);    
begin = i + 1;
}
} return new String(arr);
} public static void main(String[] args) {
String str = "I love java";
System.out.println(new StringReverse().swapWords(str));
}
}

方法二:(利用jdk提供的方法)

 public class fanzhuan {

     public static void main(String[] args) {
String str = "I love java";
String[] sArr = str.split(" ");//I love java
List<String> list = new ArrayList<String>();
list = Arrays.asList(sArr);  //此时list为[I,love,java] 
Collections.reverse(list);      //reverse方法直接反转list的每个元素,反转后为[java,love,I] for(String word:list){
System.out.print(word+" ");
}
}
}

另外,如果描述改一下,输入一个字符串,例如“abcd”,输出"dcba",

 

当然了方法很多,这里我提供一个jdk自带的方法,比较简单

 package sundemo2;

 public class fanzhuan {
public static void main(String[] args){
String str = "my name is 周杰伦";
System.out.println(reverse(str)); }
public static String reverse(String str){
return new StringBuilder(str).reverse().toString();
}
}
 package sundemo2;

 public class fanzhuan {
public static void main(String[] args){
String str = "my name is 周杰伦"; for(int i = str.length() - 1; i >= 0; i--){
System.out.print(str.charAt(i));
}
}
}

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

  1. java字符串反转

    1.递归反转 public static String reverseString(String x) { if (x == null || x.length() < 2) return x; ...

  2. Java字符串反转常见的几种方式?

    (1)通过StringBuilder的reverse()方法,速度最快: public class StringReverse { public static void main(String[] a ...

  3. Java实现字符串反转

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

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

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

  5. java几种字符串反转

    java实现的字符串翻转,能想到的这几种方法 假设有其它方法,欢迎交流 //字符串反转 public class ReverseString { public String reverse1(Stri ...

  6. Java基础知识强化45:StringBuffer类之字符串反转的案例

    1. 案例演示: package cn.itcast_07; import java.util.Scanner; /* * 把字符串反转 */ public class StringBufferTes ...

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

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

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

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

  9. JAVA:字符串反转

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

随机推荐

  1. [渣译文] SignalR 2.0 系列: SignalR 自托管主机

    原文:[渣译文] SignalR 2.0 系列: SignalR 自托管主机 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP.N ...

  2. JDK5什么是新的堵塞队列线程(四)

    一. 堵塞队列与普通队列: 队列是一种主要的数据类型,其典型特征是先进先出. 堵塞队列和普通队列的差别在于: 当队列为空时.从队列中获取元素的线程会被堵塞.直到其它的线程往空的队列里插入新的元素: 当 ...

  3. HDU 3831 DICS

    意甲冠军: 按标题给4操作模式  用最少的次数  离a串行转换b弦 思路: 因为操作仅仅有这4种  所以我们能够确定从头到位去匹配a和b一定是正确的 那么状态数一共同拥有多少呢  一共同拥有lengt ...

  4. 【Stackoverflow好问题】祛烦“!=null&quot;()判处空语句

    问题 为了避免空指针调用,我们常常会看到这种语句 ...if (someobject != null) { someobject.doCalc();}... 终于.项目中会存在大量判空代码.多么丑陋繁 ...

  5. osx下一个MobileBackups简介

    自从开启了mac的TimeMachine之后,使用了一段时间的mac磁盘空间降低的非常多,于是使用du -d1(disk usage and depth is one)命令查看/文件夹空间的使用情况, ...

  6. 几点思考-人生哲学,生活方式---ShinePans

    美结账时账单住酒店一晚800元.她抱怨太贵.经理说这是标准收费,带泳池的酒店.健身房和wifi. 美女说自己全然没使用,经理说饭店有提供.是她自己不用. 女客人打开皮包掏钱付账.但说要扣除经理和她共度 ...

  7. Atitit.web三编程模型 Web Page Web Forms 和 MVC

    Atitit.web三编程模型 Web Page    Web Forms 和 MVC 1. 编程模型是 Web Forms 和 MVC (Model, View, Controller). 2. W ...

  8. 【POJ3612】【USACO 2007 Nov Gold】 1.Telephone Wire 动态调节

    意甲冠军: 一些树高给出.行一种操作:把某棵树增高h,花费为h*h. 操作完毕后连线,两棵树间花费为高度差*定值c. 求两种花费加和最小值. 题解: 跟NOIP2014 D1T3非常像. 暴力动规是O ...

  9. 提高duilib的richedit控制的一些特征

    转载请注明原始出处.谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41208207 假设要使用透明异形窗口功能,首先要改进duilib库让他 ...

  10. spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)

    java-websocket该建筑是easy.儿童无用的框架可以在这里下载主线和个人教学好java-websocket计划: Apach Tomcat 8.0.3+MyEclipse+maven+JD ...