java编程:从键盘输入字符串,并按字典顺序倒序打印
编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。...
编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
展开
展开全部
import java.util.ArrayList;
import java.util.Scanner;
public class JudgeString {
public static void main(String[] args) {
// 接受键盘输入
Scanner in = new Scanner(System.in);
// 保存输入数据的List
ArrayList<String> list = new ArrayList<String>();
System.out.println("请输入字符串,输入“end”为结束:");
// 获取每次输入的字符串
String temp = in.nextLine();
// 获取输入的所有字符串
while (!temp.equals("end")) {
list.add(temp);
temp = in.nextLine();
}
// 调用排序函数
sort(list);
//输入结果
System.out.println("排序后的结果为:");
for(int i = 0;i<list.size();i++){
System.out.println(list.get(i));
}
}
// 排序函数(冒泡)
public static void sort(ArrayList<String> list) {
String temp = "";
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size() - 1; j++) {
if (list.get(i).compareToIgnoreCase(list.get(j)) > 0) {
temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
}
}
}
已经调试过了,肯定能运行,有不懂得可以问
追问
哥们,那个真的很抱歉,没看到你的回答,其实你这个才是正确的~给不了分了,留个地址,我给你寄点吃的哈。弱弱再问一句:冒泡排序不是依次比较相邻元素么,你这个看上去像选择排序,不懂勿喷~~~
追答
这个无所谓啦。重在学习分享。冒泡是依次比较相邻元素,把大元素向后排,就像水里面冒出来的气泡一样,大元素放到后面。每一次大循环完成,最后一位数总是最大的。选择排序是由一个中间变量保存一组数字中最大或者最小值,然后依次把它从第一位开始排列。直至全部排序完成。不懂得可以去百度一下选择和冒泡排序。这都是基本的排序方法。
展开全部
import java.util.Scanner;
public class Test8 {
public static void main(String[] args) {
Scanner c = new Scanner(System.in);
StringBuffer sbf = new StringBuffer();
while(true){
System.out.println("请输入一组字符串:");
String s = c.nextLine();
if(s.equals("end")){
break;
}else{
sbf.append(s);
}
}
String sc = sbf.toString();
char[]cs = sc.toCharArray();
for(int i = cs.length-1;i>=0;i--){
System.out.print(cs[i]);
}
}
}
不知道你所谓的字典顺序是什么意思? 我这个是把所有字符串组一块,倒序打印
更多追问追答
追问
就是按照字母的顺序排序,先比较第一个字符,第一字符相同,继续比较第二个字符。比如输入abc bcd efg 输出应该是efg bcd abc 。就是想问这个,java中有什么方法可以实现这个排序,求解!
追答
拿走试试
import java.util.Scanner;
public class Test8 {
public static void main(String[] args) {
Scanner c = new Scanner(System.in);
StringBuffer sbf = new StringBuffer();
while(true){
System.out.println("请输入一组字符串:");
String s = c.nextLine();
if(s.equals("end")){
break;
}else{
sbf.append(s+"-");
}
}
String sc = sbf.toString();
String[]cs = sc.split("-");
for(int i = cs.length-1;i>=0;i--){
char[] aa = cs[i].toCharArray();
java.util.Arrays.sort(aa);
//遍历aa
for(char x:aa){
System.out.print(x);
}
System.out.println();
}
}
}
注意这两句
char[] aa = cs[i].toCharArray();
java.util.Arrays.sort(aa);
把字符串分割成char类型数组 然后用Arrays.sort(aa)排序
ps: 黄岛的理工大?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询