运行环境:牛客网
题目描述
读入一行英文句子,将每个单词倒置后,输出这个单词倒置后的句子,空格和标点符号不做处理
输入描述
输入数据包括一行文本,包含英文字母、空格、标点符号
输出描述
输出包含一行文本,和输入文本长度一致,仅仅每个英文单词倒置
输入例子
I have a dream!
输出例子
I evah a maerd!
思路
- 用正则表达式匹配单词
- 用StringBuffer反转单词
- 用反转后的替换原有的
package com.vapy.offer;
/**
*
* @author vapy 2016年9月29日
*
*/
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
System.out.println(func(input));
}
public static String func(String input) {
Pattern p = Pattern.compile("[a-zA-Z]*");
Matcher m = p.matcher(input);
while (m.find()){
String temp = m.group();
input = input.replaceFirst(temp, new StringBuffer(temp).reverse().toString());
}
return input;
}
}
本文代码可在github查看:点击此处