将一句话里的单词倒置,标点符号不到换,如 i come from xian。变成 xian。from come i
public class reverses { public static void main(String[] args) {
String str="i come from xian.";
StringBuffer aa=new StringBuffer("");
String bb="";
StringBuffer ss=new StringBuffer(str);
String str1=ss.reverse().toString();
char []a=str1.toCharArray();
for(int i=0;i<a.length;i++){
if(a[i]!=' '){
aa=aa.append(a[i]);
}
else {
System.out.println(aa);
aa=aa.reverse();
bb=bb+aa+a[i];
aa=new StringBuffer("");
}
}
System.out.println(bb);
}
}
为什么输出为xian。from come 打印不上最后一个单词。
public class reverses { public static void main(String[] args) {
String str="i come from xian.";
StringBuffer aa=new StringBuffer("");
String bb="";
StringBuffer ss=new StringBuffer(str);
String str1=ss.reverse().toString();
char []a=str1.toCharArray();
for(int i=0;i<a.length;i++){
if(a[i]!=' '){
aa=aa.append(a[i]);
}
else {
System.out.println(aa);
aa=aa.reverse();
bb=bb+aa+a[i];
aa=new StringBuffer("");
}
}
System.out.println(bb);
}
}
为什么输出为xian。from come 打印不上最后一个单词。
解决方案 »
- 程序员如何能养成读懂代码的习惯
- 如何在 tomcat stop 之前执行一些java代码?
- 需要<提示符>,非法的类型开始
- HURRY!!! HURRY!!! what's wrong with this method??
- 关于java 时间函数 parse
- 最近在sun的Bug Database上提交了一个Bug,已经被修复了,但不知什么时候发布,唉,散散分吧,散散心。
- 谁能帮我解决一下路径问题
- 一个有关IO基础的问题
- 急救,请问如何把String 转换为Calendar,在线等,答出来,立即给分
- stringBuilder的父类到底是啥?
- 请问,我若想编一个界面漂亮的音乐播放器,要学java的哪些知识?
- buffer.capacity()方法到底是怎样计算的?
String str = "i come from xian.";
StringBuffer aa = new StringBuffer("");
String bb = "";
StringBuffer ss = new StringBuffer(str);
String str1 = ss.reverse().toString();
char[] a = str1.toCharArray();
for(int i = 0;i < a.length;i++){
if(a[i] != ' '){
aa.append(a[i]);
}else{
System.out.println(aa);
aa.reverse();
bb = bb + aa + a[i];
aa = new StringBuffer("");
}
}
//i是a的最后一个元素,a[i] == ' '的情况不会出现,循环里else不会执行
//在循环外执行bb = bb + aa即可
bb = bb + aa ;
System.out.println(bb);
String str="i come from xian.";
StringBuffer aa=new StringBuffer("");
String bb="";
StringBuffer ss=new StringBuffer(str);
String str1=ss.reverse().toString();
char []a=str1.toCharArray();
for(int i=0;i <a.length;i++){
if(a[i]!=' '){
aa=aa.append(a[i]);
}else {
System.out.println(aa);
aa=aa.reverse();
bb=bb+aa+a[i];
aa=new StringBuffer("");
}
}
System.out.println(bb+aa.reverse().toString());
}
}
StringBuffer sb = new StringBuffer();
String str="zi fu chuan dao zhi!";
int i=0;
int index=0;
while(i<str.length())
{
if(str.charAt(i)==' ')
{
sb.insert(0,str.substring(index,i));
sb.insert(0," ");
i++;
while(str.charAt(i)==' ' && i<str.length())
i++;
index=i;
sb.append(' ');
}
i++;
}
sb.insert(0,str.substring(index,i));
System.out.println(sb.toString());我JDK是1.4的没charAt这个方法...所以没调试...LZ自己调试下...
String str = "i come from xian.";
StringBuffer aa = new StringBuffer("");
String bb = "";
StringBuffer ss = new StringBuffer(str);
String str1 = ss.reverse().toString();
char[] a = str1.toCharArray();
for(int i = 0;i < a.length;i++){
if(a[i] != ' '){
aa.append(a[i]);//最后一次aa.append(a[i])的元素是i,楼主没有将这个aa加进去
}else{
System.out.println(aa);
aa.reverse();
bb = bb + aa + a[i];
aa = new StringBuffer("");
}
}
bb = bb + aa ;//加上这句就行了
System.out.println(bb);
运行结果:
.naix
morf
emoc
xian. from come i
import java.util.regex.Pattern;public class Reverses { /**
* @param args
*/
public static void main(String[] args) {
String str="i come from xian.";
String splitStr = "\\s+";
System.out.println(reverse(str, splitStr));
}
/**
* 将一句话里的单词倒置
* @param str 要倒置的字符串
* @param splitStr 分割字符串
* @return 倒置后的字符串
*/
public static String reverse(String str, String splitStr) {
String[] arrStr = str.split(splitStr);
String resultStr = "";
for (int i = arrStr.length - 1; i >= 0 ; i--) {
resultStr += arrStr[i] + " ";
}
return resultStr.substring(0, resultStr.length() - 1);
}
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Reverses { /**
* @param args
*/
public static void main(String[] args) {
String str="i come from xian.";
String splitStr = "\\s+";
System.out.println(reverse(str, splitStr));
}
/**
* 将一句话里的单词倒置
* @param str 要倒置的字符串
* @param splitStr 分割字符串
* @return 倒置后的字符串
*/
public static String reverse(String str, String splitStr) {
String[] arrStr = str.split(splitStr);
String resultStr = "";
for (int i = arrStr.length - 1; i >= 0 ; i--) {
resultStr += arrStr[i] + " ";
}
return resultStr.substring(0, resultStr.length() - 1);
}
}