字符按要求输出Java

来源:互联网 发布:猎场网络点击量 编辑:程序博客网 时间:2024/05/18 17:26

题目描述

编写一个函数,将字符串中的每个单词的倒序输出,字符串中以空格分割各个单词,如果碰到数字则跳过。

接口设计及说明:public void vConvertMsg(String sInputStr, StringBuffer OutputStr)

输入

String

 

输出

String

 

样例输入

He is a man no12 3456

样例输出

eH si a nam on12 3456

提示

地区

南京研究所

产品线

公共

阶段

招聘

难度

1

public void vConvertMsg(){Scanner sc=new Scanner(System.in);String[] sInputStr=sc.nextLine().split(" ");List<String> list=new ArrayList<String>();for(int i=0;i<sInputStr.length;i++){if(sInputStr[i].matches("^[a-z,A-Z]*$")){//全为字母String s=convertString(sInputStr[i]);list.add(s);}else if(sInputStr[i].matches("^\\d*$")){//全为数字list.add(sInputStr[i]);}else{//既有字母又含数字String temp=sInputStr[i];String s=temp.replaceAll("\\d","");//去掉所有数字s=convertString(s);StringBuilder sb=new StringBuilder();for(int j=0,k=0;j<temp.length();j++){char c=temp.charAt(j);if(c<48||c>57){//不为数字时sb.append(s.charAt(k++));}else{sb.append(c);}}list.add(sb.toString());}}StringBuilder sb=new StringBuilder();for(String s:list){sb.append(s+" ");}sb.deleteCharAt(sb.length()-1);System.out.println(sb);}private String convertString(String s) {Stack<Character> stack=new Stack<Character>();StringBuilder sb=new StringBuilder();char[] c=s.toCharArray();for(int i=0;i<c.length;i++){stack.push(c[i]);}while(!stack.isEmpty()){sb.append(stack.pop());}return sb.toString();}