大数据分析技术之JAVA基础(五)

写在前面:今天继续分享JAVA后续的内容,可能最近对于JAVA的更新会更频繁一点,深度学习那边感觉数据加载还是有点问题,开始苦恼。在本文的最后附上了最近学习JAVA的参考文献电子版百度网盘下载地址。

学习内容安排

JAVA基础课程学习:数据类型(一)、运算符表达式和程序结构控制(二)、面向对象基础:类与对象和接口(三)、面向对象基础:继承抽象多态封装(四)、异常类和常用实用类(五)、组件和事件处理(六)、IO和JDBC(七)、泛型和集合函数(八)。

五、异常类和常用实用类

1.异常类
今天的重点是讲解一下异常类和常用的一些实用类,所谓异常类就是设置一个程序报错的反馈项,因为如果没有这样一个反馈报错项的话,程序就会中断,如果是一个大型项目程序中断的代价是非常高的,所以需要设置一个异常类进行报错,下面我们来通过实例来理解一下异常类,异常类就是用try-catch来构造异常捕捉机制。
我们希望输入一个整数,并输出,如果输入的不是一个整数那么就返回异常捕捉中的语句,
1.1单异常捕捉机制

//单个的异常捕捉机制
package mycp7;

import java.util.Scanner;

public class Csdn5_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("[请输入一个整数]> ");
        int x = 0; //需要在try的外面定义x,try之外的x才可识别
        try{
            x = in.nextInt();
            System.out.println("您输入的整数为=> "+x);
        }catch (Exception e){
            System.out.println("您输入的不是一个整数!");
        }
    }
}
[请输入一个整数]> 20
您输入的整数为=> 20
[请输入一个整数]> a
您输入的不是一个整数!

那么当我们不再是一个语句的时候作为新手应该怎么来设置报错项,来让我们知道到底是哪个语句出错了呢?这里我们使用的一个叫做判断语句的方法,判断语句位于要执行的两个语句中间,如果第一个出错,那么判断语句不输出;如果第二个出错那么判断语句先输出,例子如下,
1.2判断语句

package mycp7;

import java.util.Scanner;

public class Csdn5_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("[请输入一个整数]> ");
        int x = 0, y = 0;
        try{
            x = in.nextInt();
            System.out.println("您输入的整数x为=> "+x);
            
            System.out.println("此语句出现说明x的输入无问题");//判断语句
            
            System.out.print("[请输入另一个整数]> ");
            y = in.nextInt();
            System.out.println("您输入的整数y为=> "+y);
        }catch (Exception e){
            System.out.println("您输入的不是一个整数!");
        }
    }
}

下面我们展示三种情况来说明这样一个判断语句,
第一种情况:我们对x输入a,那么立即结束程序运行输出“您输入的不是一个整数”

[请输入一个整数]> a
您输入的不是一个整数!

第二种情况:我们对x输入2,程序继续运行输出x的展示以及判断语句,然后对y输入a,立即结束程序运行,输出报错语句,

[请输入一个整数]> 2
您输入的整数x为=> 2
此语句出现说明x的输入无问题
[请输入另一个整数]> a
您输入的不是一个整数!

第三种情况:我们对x输入2,程序继续运行输出x的展示以及判断语句,然后对y输入3,正常运行完整程序。因此我们就可以看出当判断语句出现时说明上一个语句无问题。

[请输入一个整数]> 2
您输入的整数x为=> 2
此语句出现说明x的输入无问题
[请输入另一个整数]> 3
您输入的整数y为=> 3

在catch后面的Exceotion e表示包括又有的错误类别,到后面可以针对不同的错误设置不同的catch进行报错。
1.3调用时的异常捕捉机制
当我们需要调用上面输入的函数时,我们可以创建对象来完成调用,但此时遇到一个问题就是,我们调用了后,如果错误输入非整数型数据,那么就会执行“您输入的不是一个整数!”语句,那如果别人需要设置自己的报错语句应该怎么来设置呢?怎么来实现更加个性化的报错语句呢?
首先我们需要将之前测试的主方法改为方法,然后再方法名后面写上throws Exception来使得调用用户自定义报错语句,

package mycp7;

import java.util.Scanner;

public class Csdn5_1 {
    void input() throws Exception{
        Scanner in = new Scanner(System.in);
        System.out.print("[请输入一个整数]> ");
        int x = 0, y = 0;
        x = in.nextInt();
        System.out.println("您输入的整数x为=> " + x);
        System.out.println("此语句出现说明x的输入无问题");//判断语句
        System.out.print("[请输入另一个整数]> ");
        y = in.nextInt();
        System.out.println("您输入的整数y为=> " + y);
    }
}

然后创建另一个java类,我们来进行方法的调用,

package mycp7;

public class Csdn5_2 {
    public static void main(String[] args) {
        Csdn5_1 k = new Csdn5_1();
        try{
            System.out.println("我们需要输入x, y两个值");
            k.input();
        }catch (Exception e){
            System.out.println("警告:错误!");
        }
    }
}
我们需要输入x, y两个值
[请输入一个整数]> a
警告:错误!

2.常用实用类String
下面我们将介绍几个在JAVA中比较常用的类,并附带例子进行分享,在今天的分享中我们主要分享String类的一些实用方法。
String类在java.lang的包中,这个包被默认加载了,所以不需要单独的调用,需要注意的是String类的声明为final类,也就是用户不能对String类进行重写,对于String类的用法我们继续分享,
2.1常量对象
也就是直接利用String声明变量,例如,虽然a、b的值是一样的但是会给这两个常量赋予不同的储存位置,

package mycp7;

public class Csdn5_3 {
    String a = "123", b = "123";
}

2.2String对象
还可以通过String类来声明对象并创建对象,这里有几种常用的用法,
1)这里对两个对象分别声明了同样的内容,但值得注意的是如果对s和t两个对象利用s==t会返回false,因为比较的是两个对象的索引,储存在不同的位置,所以对于非java8个基础类型的数据,我们均不使用双等号,具体方法会在后文讲到,
2)可以对char数组进行String的自动连接,生成字符串;
3)可以指定String连接char中的某一段,String(a,2,4)表示从第3位开始取4个值进行拼接,具体例子如下,

package mycp7;

public class Csdn5_3 {
	//String声明对象
    String s = new String("We are students");
    String t = new String("We are students");
	
	//String对char的拼接	
    public static void main(String[] args) {
        char x[] = {'我','是','明','曦','君','!'};
        String xx1 = new String(x);
        System.out.println(xx1);
        //相当于String xx1 = new String("我是明曦君!");
        String xx2 = new String(x,2,3);
        System.out.println(xx2);
    }
}
我是明曦君!
明曦君

2.3String类常用的方法
下面来介绍一些对于String的常用方法,
1)public int length():获取字符串长度。
我们在JAVA系列的第一篇的时候对数组长度的计算用到了length,但没有括号,因为有括号的是方法。这里值得注意的是JAVA中汉字占一个长度,

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String m = new String("abc明曦君");
        System.out.println(m.length());  
    }
}
6

2)public boolean equals(String s):判断当前String对象的字符序列是否与参数s指定的String对象的字符序列相同;
所以我们再次强调,对于JAVA的非基础类型数据,我们不要使用双等号去判断数据是否相等。

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String s = new String("We are students");
        String t = new String("We are students"); 
        if(s == t){
            System.out.println("s和t的值相等");
        }else{
            System.out.println("双等号:s和t的值不等");
            
        if(s.equals(t)){
            System.out.println("s和t的值相等");
    }
}
双等号:s和t的值不等
s和t的值相等

3)public boolean startsWith(String s):判断当前String对象是否以制定字符开头;
这个方法可以用于大规模识别一些数据的格式是否正确,比如识别省份证是否以5开头,这类的。

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String z = new String("我是明曦君");
        if(z.startsWith("我")){
            System.out.println("字符串是以“我”开始的");
    }
}
字符串是以“我”开始的

4)public boolean contains(String s):判断当前序列是否包含s序列;

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String z = new String("我是明曦君");
        if(z.contains("明曦")){
            System.out.println("包含“明曦”");
        }
    }
}
包含“明曦”

5)public int indexOf(String str):返回首次出现str序列的位置,如无值则返回-1,当然还可以设置参数,表示从第几个字符开始搜索;
这里就可以返回索引,返回指定字符出现的位置

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String v = new String("131452020202222");
        System.out.println(v.indexOf('2'));
        System.out.println(v.indexOf('2',6));
    }
}
5
7

6)public String trim():删掉String对象前后的空格字符序列。
在经常输入密码的时候,我们可能会不经意间输入了括号,为此我们在做密码分析的时候一般是去掉左右的括号,这个在SQL中的密码分析还挺常用的。

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String w = new String("  2020-3-8   ");
        System.out.println(w+"  w长度为: "+ w.length());
        System.out.println(w.trim()+"  w长度为: "+ w.trim().length());
    }
}
  2020-3-8     w长度为: 13
2020-3-8  w长度为: 8

7)public String substring(int statrt point):就是提取字符串中的一段。
8)字符串与基本数据的相互转化
例:String转换为int需要使用public satatic int parseInt(String s)
当我们看到有satatic时,就知道这个类方法,可以直接输入类.方法进行调用,这个方法的类时Integer。这里我们同时使用substring一区部分字段,

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        int x;
        String s = "876";
        x = Integer.parseInt(s.substring(1, 3));
        System.out.println(x);
    }
}
876

同样的我们还可以把字符串转为byte、short、long、float、double类型,他们对应的类分别是Byte\Short\Long\Float\Double类,对应的调用方法就是parseByte这种,这里就不做展示了。但需要注意的是调用其他类需要注意取值范围,这个在第一讲数据基本类型里就说过了,可以翻阅查看。

9)将基本类型或者其他类型转化为字符串
例:我们需要将byte、short、int、long、float、double这几个类型的转为字符串型,需要使用public static String valueOf(byte n),这个方法。
10)public String toString() 就是将得到的对象转换为String,下面我们来展示一下把现在的时间进行提取转化为字符串,

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String a = String.valueOf(11153);
        System.out.println(a.substring(1,4));
        Date d = new Date();
        System.out.println(d);
        String date = d.toString();
        System.out.println(date.substring(11, 19));
    }
}
115
Mon Mar 09 09:46:08 CST 2020
09:46:08

结语
好了,今天关于异常类已经String类的常用方法已经分享完了,后续可能会出多个续篇来对更多的常用类进行说明。
谢谢阅读。
参考
JAVA2实用教程第5版
链接:https://pan.baidu.com/s/1MBWZigAGH6NYDqw3nfeWJw
提取码:bhpl

发布了20 篇原创文章 · 获赞 79 · 访问量 2757

猜你喜欢

转载自blog.csdn.net/qq_35149632/article/details/104733917
今日推荐