您的位置:首页 > 编程语言 > Java开发

20155321 2016-2017-2《Java程序设计》课堂实践项目

2017-05-10 10:34 513 查看

20155321 2016-2017-2《Java程序设计》课堂实践项目

关于String类

split方法



charAt方法



项目题目:

模拟实现Linux下Sort -t : -k 2的功能。参考 Sort的实现。提交码云链接和代码运行截图。

1 import java.util.*;
2
3 public class MySort1 {
4     public static void main(String [] args) {
5         String [] toSort = {"aaa:10:1:1",
6                             "ccc:30:3:4",
7                             "bbb:50:4:5",
8                             "ddd:20:5:3",
9                             "eee:40:2:20"};
10
11         System.out.println("Before sort:");
12         for (String str: toSort)
13                     System.out.println(str);
14
15         Arrays.sort(toSort);
16
17         System.out.println("After sort:");
18         for( String str : toSort)
19             System.out.println(str);
20     }
21 }

实验代码

import java.util.*;
public class Mysort1 {
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);
String  [] s1 = new String[toSort.length];
for (int i = 0; i < toSort.length; i++) {
String list[] = toSort[i].split(":");
s1[i] = list[2];
}
Arrays.sort(s1);
String [] s2 = new String[toSort.length];
for (int i=0; i<s1.length;i++)
for (int j=0;j<toSort.length;j++)
if( toSort[j].charAt(7) == (s1[i].toCharArray()[0]))
s2[i] = toSort[j];
System.out.println("After sort:");
for(String  str : s2 )
System.out.println(str);
}
}

实验结果



代码中所遇到的问题

问题:第二层循环中使用一个数组,如果if语句成立就将toSort数组中对应的那个值赋值给新的那个数组,但是在实际应用中不知道如何填写if语句里的内容,对equals与==的使用还是不熟悉

解决方案

通过网上的资料显示:

string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;

当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;

  

基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;

最终不断通过调试即可得出答案
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: