zoukankan      html  css  js  c++  java
  • 20155321 2016-2017-2《Java程序设计》课堂实践项目

    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与==的使用还是不熟悉

    • 解决方案

      通过网上的资料显示:

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

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

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

    最终不断通过调试即可得出答案

  • 相关阅读:
    DS博客作业03--树
    DS博客作业02--栈和队列
    数据结构——线性表
    结构体
    C博客作业05--指针
    C语言博客作业04--数组
    面向对象设计大作业第二阶段:图书馆系统
    Java程序设计-有理数类的设计
    DS博客作业05-查找
    DS博客作业04-图
  • 原文地址:https://www.cnblogs.com/rafell/p/6834692.html
Copyright © 2011-2022 走看看