Chinaunix首页 | 论坛 | 博客
  • 博客访问: 111072
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 344
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-21 23:11
文章分类
文章存档

2014年(23)

2013年(3)

分类: C/C++

2014-04-08 10:32:38

在leetcode.com上看到一道题:输入一个字符串,要求写一个程序让它把字符串反转,然后打印出来。比如,当输入the sky is blue, 程序需要输出blue is sky the.


昨天琢磨了一下午,终于用java搞出来了,还是有些成就感的。灵感来自于我现在正在看的两本关于java的书,让我想到了用StringTokenizer。所以,多看书还是很用帮助的。


下面是我的java代码:


   
import java.util.*;
import java.io.*;
class Solution
{
    public static void main(String[] args)
    {
        System.out.println("Please Input A String Here: ");
        Scanner s=new Scanner(System.in);
        String str=s.nextLine();
        System.out.println(reverseWords(str));
    }
    public static String reverseWords(String s) {
        StringTokenizer st=new StringTokenizer(s," ");//以空格为分隔符分割输入的字符串
        int count=st.countTokens();//分割字符串后单词的数量
        String array[]=new String[count];
        String str=" ";
        int i=0;
        while(st.hasMoreTokens()) //把分割后的单词复制给数组元素
        {
            array[i]=st.nextToken();
            i=i+1;
        }
        for(int x=array.length-1;x>=0;x--) //拼接字符串
        {
            str=str+" "+array[x];
        }
        String result=str.trim(); //清除头和尾的空格
        return result;
    }
}


阅读(1569) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~