public String reverseWords(String s) { int start = 0;//单词的开头下标 int end = 0;//单词的结尾下标 char[] newString = s.tochararray();//转化成CHAR数组 for(int i=0;i<s.length();i++) { end = i; char current = s.charat(i); if(current == ' ' && i!= s.length()-1){ for(int j = start;j<end;j++) { int k = j-start; newString[s.length()-i+k] = s.charat(j); } newString[s.length()-i-1] = ' '; start = i+1; }else if(i==s.length()-1) { for(int j = start;j<=end;j++) { int k = j-start; newString[s.length()-i+k-1] = s.charat(j); } } } String result = new String(newString); while(result.startsWith(" ")) { result = result.substring(1,result.length());//去前后空格 } while(result.endsWith(" ")) { result = result.substring(0,result.length()-1); } String[] conseq = result.split("\\s{1,}");//百思不得其解之后在网上找来的正则表达式,第一个\是JAVA转义字符,\s表示空格,{1,}表示匹配第一个,合起来就是匹配第一个空格来分割字符串到数组中,避免出现多空格 ArrayList<String> list = new ArrayList<String>(); for(int i = 0;i<conseq.length;i++) { list.add(conseq[i]); } String fi = list.toString(); fi = fi.substring(1,fi.length()-1); fi = fi.replaceAll(","," "); return fi; }
原文地址:https://www.jb51.cc/regex/361091.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。