zoukankan      html  css  js  c++  java
  • 关于解决MySort

    关于解决MySort

    • 那天老师教给我们关于sort的用法以及String类中的split方法。在一定程度上告诉我们sort用法的原理和一些特别的用法后,老师叫我们用JAVA尝试去设计一个"MySort"来实现sort的方法。

    • 据我的个人情况我对split的用法了解不够深,在帮助文档中发现其解释我能了解的也是十分有限

    如:regex是什么,而又应该填什么;使用split方法时又应该用什么样的格式来使用这一方法……

        带着这些疑问,我上到网上去查相关资料,发现split的用法是建立在一个String类的数组中其中的regex意思是以什么分隔符为标准,并对字符串进行分隔,用的时候分隔符要放在双括号中如:

    若以"aa:10:1:1"中的":"为分隔符

    "aa:10:1:1"--->"aa" "10" "1" "1"

    这样一来就知道split的方法之一了,还有一个在regex参数后添加一个整形数。为探求其功能,我直接在我原来学习split的代码上试验

    public class aboutsplit {
        public static void main(String[] args){
            String [] toSort = {"aaa:10:1:1"}
    
                 String[] div = toSort[0].split(":",2);
                 for(int d=0; d<div.length;d++){
                     System.out.println(div[d]);
                 }
                }
                }
    

        因此可以得到这种用法可以使第n个分支开始停止断开。

    参考资料:Java split() 方法 | 菜鸟教程

    • 解决了split的知识点后,仍然有新的麻烦——字符串是属于分开的状态,怎样才可以将怎段完整的字符串进行排序?

        在经过一段时间的思考和纸上的运算后,可以利用老师给的模板用两个循环来实现这个想法。

    • 首先创建一个新的字符串数组来存放新排列的字符串。
    • 创建两个互相镶嵌的循环来实现字符串的新排列
    • 第一个循环来将新排列的字符串放进新数组中
    • 第二个循环用来匹配,是否满足我要求的列排序

        完成后代码如下:

    import java.util.*;
    
    public class MySort {
        public static void main(String [] args) {
            String [] toSort = {"aaa:10:1:1",
                    "ccc:30:3:4",
                    "bbb:50:4:5",
                    "ddd:20:5:3",
                    "eee:40:2:20"};
    
            System.out.println("Before sort:");
            for (String str: toSort)
                System.out.println(str);
    
            int [] k2 = new int[toSort.length];
            for(int i =0;i<toSort.length;i++){
                String[] div = toSort[i].split(":");
                k2[i]=Integer.parseInt(div[1]);
            }
            Arrays.sort(k2);
            String[] save = new String[k2.length];
            for(int i=0;i<toSort.length;i++)
                for (int k = 0; k < k2.length; k++) {
                   if (toSort[i].substring(4,6).equals(String.valueOf(k2[k]))) {
                       save[k]=toSort[i];
                   }
    
               }
               System.out.println();
            System.out.println("After sort:");
               for(int i =0;i<save.length;i++){
                System.out.println(save[i]);
               }
           }
                  }
    
    
    

    运行结果:

    • 感悟与反思

        自己写代码的效率还是不够高,实践的次数和深度还是不够。今后会自己动手多写新代码,从而发现更多的问题,从而能够让自己进步。

  • 相关阅读:
    《.NET分布式应用程序开》读书笔记 第一章:理解分布式架构
    一个DataSet的工具类,可以将DataTime的Time部分去掉,主要在序列化Xml时有用.
    Microsoft SQL Server 2005技术内幕系列书籍
    COM+客户端部署发现
    PowerDesigner中三种模型的转换关系图
    将ASP.NET页面内容输出到字符串中
    在WinForms中隐藏Crystal Report的[MainReport]标签页
    qmake常用语法一
    MinGW简介
    Qt的prx文件
  • 原文地址:https://www.cnblogs.com/VersionP1/p/6799346.html
Copyright © 2011-2022 走看看