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

本文介绍了一个Java程序,该程序包含一个方法用于将输入字符串中的每个单词进行倒序输出,同时保留数字不变,并通过JUnit测试确保正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.测试类

package testcase;

import junit.framework.TestCase;
import huawei.Demo;


public class DemoTest extends TestCase
{
 public void testCase01()
 {
  Demo demo = new Demo();
  StringBuffer buffer = new StringBuffer();
  demo.vConvertMsg("He is a man no12 3456", buffer);
  assertEquals("eH si a nam on12 3456", buffer.toString());
 }
 
 public void testCase02()
 {
  Demo demo = new Demo();
  StringBuffer buffer = new StringBuffer();
  demo.vConvertMsg("1234567890He is a man no12 3456", buffer);
  assertEquals("1234567890eH si a nam on12 3456", buffer.toString());
 }
 
 public void testCase03()
 {
  Demo demo = new Demo();
  StringBuffer buffer = new StringBuffer();
  demo.vConvertMsg("123456H W12345", buffer);
  assertEquals("123456H W12345", buffer.toString());
 }
 
 public void testCase4()
 {
  
 }
}

 

2.实现类

 

 

package huawei;

/**
 *
 * <[Description]>
 * @author yKF51945
 * @version 1.0, May 14, 2013
 * @since Mobile Office VPN&Centrex BMP
 *  编写一个函数,将字符串中的每个单词的倒序输出,字符串中以空格分割各个单词,如果碰到数字则跳过。
    详细描述:
    示例
    输入:He is a man no12 3456
    返回:eH si a nam on12 3456
 */
public class Demo
{
 public void vConvertMsg(String sInputStr, StringBuffer OutputStr)
 {
    
     String[] strs = sInputStr.split(" ");    
     for (String temp : strs) {   
         //字符的append
         if (temp.matches("^[a-z,A-Z]*$")) {     
             OutputStr.append(" " + convertString(temp));      
             } else if (temp.matches("^\\d*$")) {        
                 OutputStr.append(" " + temp);       
                 } else {            
                     OutputStr.append(" ");     
                     String s = temp.replaceAll("\\d", "");       
                     s = convertString(s);  
                     //0-9数字的append
                     for (int i = 0, j = 0; i < temp.length(); i++) {        
                         char c = temp.charAt(i);               
                         if (!(c >= '0' && c <= '9')) {               
                             OutputStr.append(s.charAt(j++));        
                             } else {                    
                                 OutputStr.append(c);               
                                 }              
                         }
         }
        
     }
    
     String covert =   OutputStr.toString().trim();
     OutputStr.delete(0, OutputStr.length()); 
     OutputStr.append(covert);
 }
    
    
//       StringBuffer sbm = new StringBuffer ();
//       StringBuffer sbn = new StringBuffer ();
//
//    String [] spt = sInputStr.split(" ");
//   
//    String match1 = "^[0-9]+";
//      
//       Pattern pat2 = Pattern.compile(match1); 
//   
//       for(int i =0;i<spt.length;i++)
//       {
//           Matcher mat2= pat2.matcher(spt[i]);
//          
//           if(mat2.find())
//           {
//               sbm.append(spt[i]);
//           }
//           else
//           {
//               sbn.append(spt[i]);
//           }
//       }
//      
//       sbn.append(sbm);
//
//     if(null!=sInputStr)
//     {
//        
//         String covetr =   OutputStr.append(sInputStr).reverse().toString();
//        
////         StringBuffer sb = new StringBuffer ();
////         StringBuffer sb2 = new StringBuffer ();
//         String [] st = covetr.split(" ");
//        
//         String match = "^[0-9]+";
//        
//         Pattern pat = Pattern.compile(match); 
//        
//         for(int s =st.length-1;s>=0;s--)
//         {
//             Matcher mat = pat.matcher(st[s]);
//            
//             if(mat.find())
//             {
//                 OutputStr.append(st[s]);
//             }
//             else
//             {
//                 OutputStr.append(st[s]);
//             }
//         }
//     }
// }

    private String convertString(String s)
    {
        if (s.length() == 1) {          
            return s;     
            } else {     
                return convertString(s.substring(1)) + s.charAt(0);     
                }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值