Java实现英文句子中的单词顺序逆序输出的方法

本文实例讲述了Java实现英文句子中的单词顺序逆序输出的方法。分享给大家供大家参考,具体如下:

题目要求:给定n行的英文句子,要求输出句子中逆序单词后的句子,如:

输入:n=3
I love you
How are you
My name is Liming

输出:

you love I
you are How
Liming is name My

依据Java语言给我们提供的拆分空格间隔的单词的方法(split(" ")),倒序输出即可;

实现代码:

import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class Main {
    public static String reverseWords(String sentence) {
        StringBuilder sb = new StringBuilder(sentence.length() + 1);
        String[] words = sentence.split(" ");
        for (int i = words.length - 1; i >= 0; i--) {
            sb.append(words[i]).append(' ');
        }
        sb.setLength(sb.length() - 1);
        return sb.toString();
    }
    @SuppressWarnings("resource")
    public static void main(String[] args) throws UnsupportedEncodingException {
        Scanner in = new Scanner(System.in);
        System.out.printf("Please input how many lines you want to enter(test by jb51): ");
        String[] input = new String[in.nextInt()];
        in.nextLine();
        for (int i = 0; i < input.length; i++) {
            input[i] = in.nextLine();
        }
        System.out.printf("\nYour input:\n");
        for (String s : input) {
            System.out.println(reverseWords(s));
        }
    }
}

运行结果:

更多关于java相关内容感兴趣的读者可查看本站专题:《Java字符与字符串操作技巧总结》、《Java数组操作技巧总结》、《Java数学运算技巧总结》、《Java数据结构与算法教程》及《Java操作DOM节点技巧总结》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • java实现左旋转字符串

    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abcXYZdef",要求输出循环左移3位后的结果,即"XYZdefabc".是不是很简单?OK,搞定它! 代码 解法一 最直观的方式,依次将需要移位的字符移动至最后,但是每个字符都需要移动数组的长度-1,如果数组的长度是n,需要移k位,则总共需要移动 k * (n - 1) publ

  • java实现翻转单词顺序列

    本文实例为大家分享了java实现翻转单词顺序列的具体代码,供大家参考,具体内容如下 最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"student. a am I".后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是"I am a student.".Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 代码 借助上一篇文章左旋

  • java之左旋转字符串介绍

    题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部.如把字符串abcdef左旋转2位得到字符串cdefab.请实现字符串左旋转的函数.要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1). 分析:如果不考虑时间和空间复杂度的限制,最简单的方法莫过于把这道题看成是把字符串分成前后两部分,通过旋转操作把这两个部分交换位置.于是我们可以新开辟一块长度为n+1的辅助空间,把原字符串后半部分拷贝到新空间的前半部分,在把原字符串的前半部分拷贝到新空间的后半部分.不难看出

  • Java 判断字符串a和b是否互为旋转词

    旋转词:把字符串str的任意部分移动到后面形成的新字符串叫做字符串str的旋转词. 比如abc的旋转词有 abc,acb,cba,... 判断str1和str2是否互为旋转词,其最优解可以是时间复杂度为O(n)(n为字符串的长度) 方法如下: 1.判断长度是否相等 2.长度相等的话就构建大字符串,str1+str1(str1+str1中包含了str1的所有旋转词) 3.用KPM算法判断大字符串中是否包含str2 下面是具体算法实现,必须先了解KPM算法才行 package k; import j

  • Java实现英文句子中的单词顺序逆序输出的方法

    本文实例讲述了Java实现英文句子中的单词顺序逆序输出的方法.分享给大家供大家参考,具体如下: 题目要求:给定n行的英文句子,要求输出句子中逆序单词后的句子,如: 输入:n=3 I love you How are you My name is Liming 输出: you love I you are How Liming is name My 依据Java语言给我们提供的拆分空格间隔的单词的方法(split(" ")),倒序输出即可; 实现代码: import java.io.Un

  • Java统计英文句子中出现次数最多的单词并计算出现次数的方法

    本文实例讲述了Java统计英文句子中出现次数最多的单词并计算出现次数的方法.分享给大家供大家参考,具体如下: import java.util.*; /** * 统计出现次数最多的单词和它出现的次数 * * @author ZHR */ public class CountWord { public static String[] strTostrArray(String str) { /* * 将非字母字符全部替换为空格字符" " 得到一个全小写的纯字母字符串包含有空格字符 */ s

  • C++实现英文句子中的单词逆序输出的方法

    本文实例讲述了C++实现英文句子中的单词逆序输出的方法.分享给大家供大家参考,具体如下: #include "stdafx.h" #include <iostream> #include <string> #include <stack> using namespace std; int main(int arc, char** argv) { string str="I come from liaoning."; stack&l

  • java 将一个数组逆序输出的方法

    题目: 将一个数组逆序输出. 代码: import java.util.*; public class lianxi31 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a[] = new int[20]; System.out.println("请输入多个正整数(输入-1表示结束):"); int i=0,j; do{ a[i]=s.nextInt(); i++; }

  • Java控制台输入数组并逆序输出的方法实例 原创

    输入一个数组,然后颠倒次序进行输出,这种算法在程序开发中经常用到,下面我们通过一个小实例来看看怎么实现在控制台输入一个数组,并让其逆序输出的. 源码: import java.util.Scanner; public class Test01 { public static void main(String[] args){ System.out.println("请输入五个数"); int[]l=new int [5]; for(int i=0;i<5;i++) l[i]=ne

  • java识别一篇文章中某单词出现个数的方法

    本文实例讲述了java识别一篇文章中某单词出现个数的方法.分享给大家供大家参考.具体如下: 1. java代码: import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.StringTokenizer; import java.util.regex.Matche

  • Java类继承关系中的初始化顺序实例详解

    本文实例讲述了Java类继承关系中的初始化顺序.分享给大家供大家参考,具体如下: Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类的一个实例,普通成员变量SampleClass 类的2个实例(在程序中的顺序不一样)以及一个静态代码块,其中静态代码块

  • python将一个英文语句以单词为单位逆序排放的方法

    例如"I am a boy",逆序排放后为"boy a am I"所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符. list_number = list(input().split(' ')) #由于reverse无法对字符串进行操作,故对输入字符串以空格为单位分割,然后转为列表 list_number.reverse() print(" ".join(list_number)) #以" "为单位对列表中的

  • java的Map集合中按value值进行排序输出的实例代码

    java的Map集合中按value值进行排序输出的实例代码 import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Set; public class Test { public static void main(String[] args) { Map<String ,Integer> map = new Has

  • java编程调用存储过程中得到新增记录id号的实现方法

    本文实例讲述了java编程调用存储过程中得到新增记录id号的实现方法.分享给大家供大家参考,具体如下: 关于ms sql server2000的存储过程,主要作用是在表test中插入一条记录,然后得到新增加记录的id号. test表三个字段: ID:自动增长 yhm:用户名 字符串类型 kl: 密码   字符串类型 那么在java程序中如何调用这个存储过程才能实现,得到新增加记录的id号 存储过程如下: CREATE PROCEDURE yh_insert @yhm varchar(50),@k

随机推荐