zoukankan      html  css  js  c++  java
  • J2SE核心开发实战(二)——字符串与包装类

    字符串与包装类

    一、实验简单介绍

    在本章。我们将学习一些用于处理字符串的API以及包装类的相关知识。

    本章知识点

    • 字符串API
    • 包装类及其应用

    二、认识字符串类

    1. 什么是字符串类

    Java字符串类(java.lang.String)是Java中使用最多的类。也是最为特殊的一个类,非常多时候,我们对它既熟悉又陌生。

    首先你要知道什么是字符串:

    字符串(String)是由数字、字母、下划线组成的一串字符,是编程语言中表示文本的数据类型。

    你能够查看很多其它关于字符串的知识

    操作字符串的经常用法有复制、计算其长度、查找字符串中的某些字符等。

    然而,Java标准库中的String类包括非常多的方法,要想记住全部的类和方法是一件不太可能的事情。最好的办法就是养成随时查阅API文档的习惯。在最后的參考文献中我们为你提供了官方API文档的链接,你能够在当中具体查看每个操作字符串的方法。

    查阅API文档对于未来章节的学习也十分重要,请保持这个习惯。

    2. 用String类中的自带方法操作字符串

    在Eclipse中创建项目StringUtil,新建一个com.shiyanlou.course包,并创建StringTools类。

    这里会用到trim()substring()equals()length()方法。
    - String trim(),该方法返回一个新字符串,新的字符串删除了原始串中首尾的空格。
    - String substring(int beginIndex, int endIndex),该方法返回一个新字符串,新的字符串包括原来字符串中从beginIndexendIndex-1的全部内容。


    - boolean equals(Object other),该方法用于比較两个字符串,假设原字符串与忽略大写和小写的情况下与other相等,则返回true


    - int length(),该方法返回一个字符串的长度。

    这个项目首先须要获取来自用户的输入。然后去除输入的字符串中首尾多余的空格。再与字符串shiyanlou相比較,假设两个字符串同样。则截取该字符串前6位部分作为新的字符串。

    基本的代码例如以下:

    同样,你不必在实验环境中输入这些中文凝视。

    package com.shiyanlou.course;
    
    import java.util.Scanner;
    
    public class StringTools {
    
        public static void main(String[] args) {
            String a = new String();
            String b = new String();
            String c = new String();
            //创建3个字符串对象
    
            Scanner scan = new Scanner(System.in);// 创建扫描器
            System.out.println("Please input a sentence with 10 more letters include space(s) : ");
            // 获得用户输入的包括空格的字符串
    
            a = scan.nextLine();
            //将键盘上的输入赋到字符串a中
    
            b = a.trim();
            //将a中头部和尾部的空格去掉,赋值到b中
    
            if(b.equals("shiyanlou"))
                c = b.substring(0, 6);
            else {
                c = "";
            }
            //假设b字符串为shiyanlou,则取其第0个到第6个字符作为子串,赋值到c中
            //假设b字符串不为shiyanlou。则c的值为空
    
            System.out.println("a :"+a);
            System.out.println("The length of a is :"+a.length());
            System.out.println("b :"+b);
            System.out.println("The length of b is :"+b.length());
            System.out.println("c :"+c);
            System.out.println("The length of c is :"+c.length());
            //分别输出a、b、c三个字符串及其长度
        }
    
    }

    点击编译并执行,在控制台先输入5个空格。紧接着输入shiyanlou,再输入4个空格并回车。能够看到输出结果例如以下:

    字符串

    你可能想问:我们在比較字符串的时候为什么不用==而用equals()呢?
    你能够点此了解很多其它关于”==”和equals的信息

    三、认识包装类

    1. 什么是包装类

    我们知道,Java语言是面向对象的。但Java中的基本数据类型却不是面向对象的。这在实际使用过程中造成了诸多不便。

    为了解决此问题,Java语言的设计者们在设计类时,为每种基本数据类型也设计了一个相应的类。这八个和基本数据类型相应的类统称为包装类(Wrapper Class),也称为外覆类或数据类型类。

    包装类均位于java.lang包中,下表给出了包装类和基本数据类型的相应关系:

    基本数据类型 相应包装类
    byte Byte
    boolean Boolean
    short Short
    char Character
    int Integer
    long Long
    float Float
    double Double

    包装类的用途主要包括两种:
    - 作为和基本数据类型相应的类类型存在,方便涉及到对象的操作。


    - 包括每种基本数据类型的相关属性如最大值、最小值等。以及相关的操作方法。

    以下我们通过一个样例来进一步认识包装类。

    2. 比較Double类型

    首先你应该知道doubleDouble的差别,前者是基本的数据类型,后者是引用类型。即包装类。我们能够直接使用普通运算符“==”对基本数据类型进行比較。但假设将“==”用于比較引用类型的话,仅仅会推断其内存地址是否同样。而且结果一般是否定的。

    在Eclipse中创建项目DoubleCompare,新建一个com.shiyanlou.course包。并创建DoubleCompare类。

    在该类的main()方法中,定义两个含有数字的字符串并将其转换为Double类型的数据。

    String s_1 = "123.321";
    String s_2 = "567.765";
    //显然,这里的123.321和567.765都不是数值。而是“一句话”
    //你也能够自己定义这些数字
    
    Double num_1 = Double.parseDouble(s_1);
    Double num_2 = Double.parseDouble(s_2);
    //定义了Double类型的数据,并将字符串转换为双精度浮点数赋予其值
    

    上面的parseDouble(String s)就是Double类中自带的将字符串中的数字转换为double类型的方法。

    我们再将其输出。

    System.out.println("number 1: " + num_1);
    System.out.println("number 2: " + num_2);

    然后我们来比較这两个数据。主要代码例如以下:

    switch (num_1.compareTo(num_2)) {
        case -1:
            System.out.println("number 1 is smaller than number 2");
            break;
        case 0:
            System.out.println("number 1 is equal to number 2");
            break;
        case 1:
            System.out.println("number 1 is bigger than number 2");
            break;
    }

    相信你能够理解这个分支语句的含义。须要特别说明的是。compareTo(Double anotherDouble)也是Double类提供的一个方法,用于比較两个Double类型数据的大小,返回值为int类型。-101分别代表小于、等于和大于。

    该案例的完整代码例如以下图所看到的:

    完整代码

    点击编译并执行。能够在控制台看到输出结果:

    结果

    四、实验总结

    在本章我们主要学习了字符串的定义和经常使用的生成子串、去除空格、比較等方法,和包装类的定义及其基本的操作方法。

    參考文档中为你提供了很多其它关于它们的知识。最好还是试试字符串拼接等本课程还未用到的方法。

    在实验楼学习结束后,也不要忘记多看看这些API文档,多动手写写代码,天道酬勤!

    五、作业

    请使用String类的toLowerCase()toUpperCase()方法写一个字符串大写和小写转换工具。

    參考文档

    关于字符串API,你能够查看Java SE官方文档获取很多其它更好玩的内容:
    + Java SE官方API文档 - Java.lang.String

    以下是Java中一些包装类的官方技术文档:

    我们没有给出全部的包装类參考文档。请你自己动手Ctrl+F体会一下查找的过程。

    本文原文链接:https://www.shiyanlou.com/courses/111 本课为实验楼原创课程,转载请注明。

  • 相关阅读:
    超几何分布
    区分概率中的事件关系
    破解概率求解的策略
    j2ee的十三种技术
    jsp第1讲(上集)
    servlet第3讲(中集)----同一用户的不同页面共享数据
    servlet第3讲(上集)----同一用户的不同页面共享数据
    servlet第2讲(下集)----通过HttpServlet实现一个用户登录网站(继承HttpServlet)
    一款基于的jQuery仿苹果样式焦点图插件
    一款基于css3的散子3D翻转特效
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7190661.html
Copyright © 2011-2022 走看看