刚开始尝试像数组一样直接用找到一个单独的字符串就首尾双指针调换 报错 才知道java的String类一旦创建就不可以改变了
又去看了字符串 发现StringBuffer类型可以改变 并且具有内置的函数 可以直接reverse等操作 最后直接 .toString() 即可
然后设置了一个temp的StringBuffer类 用于反转单个单词 设置了StringBuffer类str 用于存储最终结果
题解:
题解没有用reverse 直接指针从后往前单个字符插入新字符串里面
public static String reverseWords(String s) { int head=0,tail=0,flag=0; StringBuffer str = new StringBuffer(); while(flag < s.length()) { while(flag<s.length() && s.charAt(flag)!=' ') { flag++; } tail=flag; flag=flag+1; StringBuffer strtemp = new StringBuffer(); strtemp.append(s.substring(head,tail)); strtemp.reverse(); str.append(strtemp); if(flag<s.length()) { str.append(' '); } head=flag; } return str.toString(); }
标签:单词,String,StringBuffer,557,力扣,flag,题解,字符串 From: https://www.cnblogs.com/ayuanjiejie/p/17158827.html