日期:2014-05-20  浏览次数:21316 次

关于输入5句话然后将它逆序输出问题~~~
题目就是依次输入五句话,然后将它逆序输出,我写了一段代码,但是输出有问题。直接上程序,请指点下。谢谢~~

这是我写的
import java.util.Scanner;
import java.util.Arrays;
public class Two {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String talk[] = new String[5];
System.out.println("请输入5句话");
for(int i=0; i<talk.length; i++) {
System.out.println("第" + (i+1) + "句话:");
talk[i] = input.next();
}
//Arrays.sort(talk);

System.out.println("逆序输出5句话");
for(int i=talk.length-1; i>=0; i--) {
System.out.println(talk[i]);
}

}


}



然后运行输入五句话:
请输入5句话
第1句话:
在java中
第2句话:
数据类型分两种
第3句话:一种是基本数据类型

第4句话:另一种是引用数据类型

第5句话:要清楚这两种数据类型的区别



但是运行后结果

逆序输出5句话
要清楚这两种数据类型的区别qu //这里怎么会有拼音呢“qu”?
另一种是引用数据类型yi //还有这里  
一种是基本数据类型sh //还有这里  
sh数据类型分两种 //还有这里  
在java中


------解决方案--------------------
读写交错就会出这个问题,
将行
System.out.println("第" + (i+1) + "句话:");
去掉即可。
------解决方案--------------------
我运行没错误。。。。难道是编译器编码的问题?
------解决方案--------------------
have a try
talk[i] = input.next(); -> talk[i] = input.nextLine();

------解决方案--------------------
探讨

如果我想输出 显示第一句话:然后输入话; 第二句话:第二句 第三句话:。。。。
该如何编写?
为什么数组像我这样编写就会出错?

------解决方案--------------------
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Demo {
public static void main(String args[]) throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String str[] = new String[5];
for(int i = 0;i<5;i++){
str[i] = buf.readLine();
}
for(int j = 4;j>=0;j--){
System.out.println("第"+j+"句:");
System.out.println(str[j]);
}
}

}
这样可以正确输出啊。