关于解决MySort

时间:2023-03-09 17:04:33
关于解决MySort

关于解决MySort

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

关于解决MySort

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

关于解决MySort

如: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]);
}
}
}

关于解决MySort

    因此可以得到这种用法可以使第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]);
}
}
}

运行结果:

关于解决MySort

  • 感悟与反思

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