当前位置:   article > 正文

反转英文句子内单词_反转句子中的单词

反转句子中的单词

比如:

输入字符串:Hello, I need an apple.
输出结果为:olleH, I deen na elppa.

注:只反转句子中各单词,遇到不是英文字符的字符则视为单词的结束。

  1. import java.util.*;
  2. import java.io.*;
  3. public class Main{
  4. public static void main(String[] args)throws Exception{
  5. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  6. String s="";
  7. while((s=br.readLine())!=null){
  8. char[] ch=s.toCharArray();
  9. int begin=-1;
  10. int end=-1;
  11. for(int i=0;i<ch.length;i++){
  12. if(!is_alf(ch[i])){//若不是英文字符
  13. if(begin!=-1){//之前是英文单词
  14. reverse(ch,begin,end);
  15. }//之前不是英文单词,跳过
  16. begin=-1;
  17. }else{//是英文字符
  18. if(begin == -1){
  19. begin=i;//若begin为1,则begin赋值
  20. end=begin;
  21. }else{
  22. end++;//end递增
  23. }
  24. }
  25. }
  26. //若最后是英文单词结束,则还要单独reverse
  27. if(begin!=-1){
  28. reverse(ch,begin,end);
  29. }
  30. //
  31. System.out.println(String.valueOf(ch));
  32. }
  33. }
  34. public static boolean is_alf(char c){
  35. if(c>='a'&&c<='z'||c>='A'&&c<='Z'){
  36. return true;
  37. }else{
  38. return false;
  39. }
  40. }
  41. public static void reverse(char[] ch,int begin,int end){
  42. while(begin < end){
  43. char temp=ch[begin];
  44. ch[begin]=ch[end];
  45. ch[end]=temp;
  46. begin++;
  47. end--;
  48. }
  49. }
  50. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/710456
推荐阅读
相关标签
  

闽ICP备14008679号