Java 在对句子的单词进行排序之后,我不断地得到所有的句子,但是我想要一个排序过的句子,而不是下面的下一个

Java 在对句子的单词进行排序之后,我不断地得到所有的句子,但是我想要一个排序过的句子,而不是下面的下一个,java,Java,我的意见是—— 我是谁 你是什么 输出为- 我是谁?你是谁 但我希望输出为- 我是谁 你是什么 我的密码是- Scanner scan = new Scanner(System.in); System.out.println("enter the value of n"); int n = Integer.parseInt(scan.nextLine()); ArrayList<String> lines = new ArrayList&l

我的意见是——

我是谁
你是什么

输出为-

我是谁?你是谁

但我希望输出为-

我是谁
你是什么

我的密码是-

    Scanner scan = new Scanner(System.in);    
    System.out.println("enter the value of n");

    int n = Integer.parseInt(scan.nextLine());

    ArrayList<String> lines = new ArrayList<String>();
    ArrayList<String> words = new ArrayList<String>();
    ArrayList<String> words_2 = new ArrayList<String>();
    boolean once_entered = true;
    for (int i = 0; i < n; i++) {
        lines.add(i, scan.nextLine() + " ");
    }
    for (int i = 0; i < n; i++) {
        String word = "";
        for (int j = 0; j < lines.get(i).length(); j++) {
            char char_0 = lines.get(i).toLowerCase().charAt(j);
            if (char_0 >= 'a' && char_0 <= 'z') {
              word += char_0;
              once_entered = false;
            }
            else if (!once_entered) 
            {
                words.add(word);
                word = "";
               once_entered = true;
            }       
        }
    }

    for (int i = 0; i < words.size(); i++) {
        boolean contains =false;
        for(int j=0;j<words_2.size();j++){
            if(words_2.get(j).contentEquals(words.get(i)))
                contains=true;
            break;
        }
        if(!contains)
            words_2.add(words.get(i));
    }

    Collections.sort(words_2);
   // System.out.println(words_2.size());
   for (int i = 0; i < words_2.size(); i++) {
        System.out.print( " " + words_2.get(i));

    }

    scan.close();
     }
}
Scanner scan=新的扫描仪(System.in);
System.out.println(“输入n的值”);
int n=Integer.parseInt(scan.nextLine());
ArrayList行=新的ArrayList();
ArrayList words=新的ArrayList();
ArrayList words_2=新的ArrayList();
布尔值一旦输入=真;
对于(int i=0;i如果(char_0>='a'&&char_0继续将输入放入字符串数组中,迭代并执行此操作。我不会编写全部代码,这是一种指导您的伪代码,但它具有排序功能

1) 用
空格分隔句子

2) 使用数组对字符串数组进行排序。排序

 String[] dataArray= stingValue.split(" ");
 Arrays.sort(dataArray);
3) 您可以通过迭代再次
concat

私有静态void doSome4Bro(){
private static void doSome4Bro() {
        Scanner scan = new Scanner(System.in);
        System.out.println("enter the value of n");

        int n = Integer.parseInt(scan.nextLine());

        ArrayList<String> lines = new ArrayList<String>(n);
        ArrayList<String> newLines = new ArrayList<String>(n);
        for (int i = 0; i < n; i++) {
            lines.add(i, scan.nextLine());
        }
        scan.close();

        for(String line:lines){
            String[] words = line.split(" ");
            Arrays.sort(words);
            StringBuilder sb = new StringBuilder(line.length());
            for(String word: words){
                if(word.isEmpty())
                    continue;
                if(sb.length() > 0){
                    sb.append(" ");
                }
                sb.append(word);
            }
            String newLine = sb.toString();
            newLines.add(newLine);
        }

        System.out.println("Get some:");
        for(String line: newLines){
            System.out.println(line);
        }
    }
扫描仪扫描=新扫描仪(System.in); System.out.println(“输入n的值”); int n=Integer.parseInt(scan.nextLine()); ArrayList行=新的ArrayList(n); ArrayList换行符=新的ArrayList(n); 对于(int i=0;i0){ 某人加上(“”); } 某人附加(字); } 字符串换行符=sb.toString(); 换行符。添加(换行符); } System.out.println(“获取一些:”; for(字符串行:换行符){ 系统输出打印项次(行); } }
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入n的值”);
int n=Integer.parseInt(scan.nextLine());
ArrayList行=新的ArrayList();
//0.移除并移到下面
布尔值一旦输入=真;
//1.从下方移除并移动
//对于(int i=0;i如果(char_0>='a'&&char_0我觉得你把问题复杂化了,或者你不知道你可以使用的工具。有一些集合可以在你输入对象时对它们进行排序

我能理解的逻辑是

  • 读出行数
  • 每行
  • 分词
  • 把单词分类
  • 印刷品
  • 我真的没有遵循全部三个单独的列表,对字符和其他东西进行小写,所以我重写了这个版本

    快速解释“存在对对象排序的集合”语句:
    一个
    TreeSet
    ,根据
    一旦输入的
    变量,您可能正在尝试删除重复项?如果是这样,那么
    是一个完美的数据结构

    class Driver {
    
        private static String strJoin(Iterable<String> lst, String delimeter) {
            StringBuilder sb = new StringBuilder();
    
            for (String s : lst) {
                sb.append(s).append(delimeter);
            }
    
            sb.setLength(sb.length() - delimeter.length());
            return sb.toString();
        }
    
        private static void rearrangeLine(String line) {
            // split the words & sort the words
            Set<String> words = new TreeSet<String>();
            words.addAll(Arrays.asList(line.split("\\s+")));
    
            // Print
            String output = strJoin(words, " ");
            System.out.println(output);
        }
    
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
    
            // read the number of lines
            System.out.println("enter the value of n");
            int n = Integer.parseInt(scan.nextLine()); 
    
            // for each line   
            for (int i = 0; i < n; i++) {
                System.out.print(">> ");
                String line = scan.nextLine();
                rearrangeLine(line);
            }
    
            scan.close();
        }
    }
    

    n
    应该是什么?行数?是的,n是行数。您是否试图删除重复项?输入后的
    是什么?
    ?我只是这样做了…我只想“输入”在每个已排序的句子之后。您能帮我检索数据库列作者姓名并应用此代码对数据库列的名称进行排序吗?例如,作者姓名如下:Bertwell;Dale E.(Denver,CO),Markham;Joseph P.(Arvad,CO)Boudma;Noureddine(Gentilly,FR)。如果您有SQL存储,您可以使用ORDER BY关键字对查询结果进行排序
    class Driver {
    
        private static String strJoin(Iterable<String> lst, String delimeter) {
            StringBuilder sb = new StringBuilder();
    
            for (String s : lst) {
                sb.append(s).append(delimeter);
            }
    
            sb.setLength(sb.length() - delimeter.length());
            return sb.toString();
        }
    
        private static void rearrangeLine(String line) {
            // split the words & sort the words
            Set<String> words = new TreeSet<String>();
            words.addAll(Arrays.asList(line.split("\\s+")));
    
            // Print
            String output = strJoin(words, " ");
            System.out.println(output);
        }
    
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
    
            // read the number of lines
            System.out.println("enter the value of n");
            int n = Integer.parseInt(scan.nextLine()); 
    
            // for each line   
            for (int i = 0; i < n; i++) {
                System.out.print(">> ");
                String line = scan.nextLine();
                rearrangeLine(line);
            }
    
            scan.close();
        }
    }
    
    enter the value of n
    2
    >> who i am
    am i who
    >> what are you
    are what you