T001-UT001-0019

字符串练习


编写一个程序,从标准输入设备上输入一行英文语句。敲击回车后对该语句进行处理,对每个(逗号,句号,感叹号和问号除外)单词进行反向处理操作,且保持原语句顺序,将处理完毕的结果输出在标准输出设备上。

举例一:

输入:

1
This is a very simple problem.

输出:

1
sihT si a yrev elpmis melborp.
代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class D0019 {
	public static void main(String[] args) throws IOException {
    	String regex=" |,|\\?|\\.|\\!";
    	String regex1=" ";    
    	BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
    	String str=input.readLine();
        String[] slist=str.split(regex);//以符号和空格分割
        String[] cstr=str.split(regex1);//以空格分割	
        for(int i = 0,z=0; i < slist.length&&z<cstr.length;) {
        	int index=0;
        	if(slist[i].equals(cstr[z])){//处理以空格隔开的字符串
        		StringBuffer sb = new StringBuffer(slist[i]); 
        		System.out.print(sb.reverse()+" ");
        		i++;z++;
        	}else{//处理空格间有符号的
        		String[] cs=cstr[z].split(regex);//以符号分割当前字符串
        		char[]mid = new char[cs.length]; 
        		for(int k=0;k<cstr[z].length();k++){//保存符号        			
        			char c=cstr[z].charAt(k);
        			if(c==' '||c=='.'||c=='?'||c=='!'||c=='.'){
        				mid[index++]=c;
        			}
        		}
        		for(int j=0;j<cs.length;j++){//反序输出
        			StringBuffer s1 = new StringBuffer(cs[j]); 
            		System.out.print(s1.reverse());
            		System.out.print(mid[j]); 
	        	}	
        		i=i+cs.length;
        		z++;	
        	}
        }
    }    
} 

(全文完)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值