/** * 字符翻转,以字符为单位进行翻转,空格之间为一个字符 * @param str */ public void reverse(String str){ char[] chars = str.toCharArray(); int[] pos = new int[chars.length]; int index = 0; for(int i=0;i<chars.length;++i){ if(chars[i]==' '){ pos[index++] = i; } } // 逆序遍历pos数组获取字符 for(int i=pos.length-2;i>=0;--i){ if(pos[i+1] - pos[i]==1){ System.out.println(" ");//两个相连的空格 } System.out.println(new String(chars,pos[i],pos[i-1]-pos[i]+1)); } }第一遍遍历字符数组,获取空格在数组中的位置,逆序输出时候根据空格数组输出