首页 > 编程语言 >Java包装类;字符串处理类:String;StringBuffer;StringBuilder;字符串处理类的常用方法;异常处理机制;异常分类;常见Runtime异常;

Java包装类;字符串处理类:String;StringBuffer;StringBuilder;字符串处理类的常用方法;异常处理机制;异常分类;常见Runtime异常;

时间:2024-08-06 11:54:16浏览次数:13  
标签:String 处理 System println 字符串 异常 out

一,包装类

          什么是包装类:

                 包装类是对于八种基本数据类型而言的,八种数据类型都有其对应的包装类。
                 以前定义变量,经常使用基本数据类型,对于基本数据类型来说,它就是一个数,加点属性,加点方法,加点构造器。
                将基本数据类型对应进行了一个封装,产生了一个新的类,--->包装类。注:包装类是引用数据类型。

              包装类后可以对包装后的数据进行.+方法的操作,可对该数据进行原本基本数据不能进行的操作。
                   int,byte.....--->基本数据类型
                   包装类--->引用数据类型

         基本数据类型和包装类的对应关系:


基本数据类型          对应的包装类                继承关系
byte                          Byte                           ---》Number---》Object
short                         Short                         ---》Number---》Object
int                             Integer                      ---》Number---》Object
long                          Long                          ---》Number---》Object
float                          Float                          ---》Number---》Object
double                      Double                      ---》Number---》Object
char                          Character                  Object
boolean                    Boolean                    Object

      为什么需要包装类:

              
                   
     1.基本数据类型不具备面向对象思想(不能对象.调用方法())。

                         2.Java中集合需要将数据类型转换为引用数据类型才可以使用集合。

     包装类特有的机制:自动装箱  自动拆箱:

     //自动装箱:int--->Integer
        Integer i = 12;
        System.out.println(i);
        //自动拆箱:Integer--->int
        Integer i2 = new Integer(12);
        int num = i2;
        System.out.println(num);

二,字符串处理类

  Java中字符串处理类种类:

Java中准备的字符串处理类一共有3种:


                      String:  不可变的字符串   (对内容进行修改,会新增地址,不变的是地址对于的值不变)
                      StringBuffer: 可变字符串 ,线程安全的,   效率低
                      StringBuilder:可变字符串 ,线程不安全,  效率高  

                                                                         补:字符串处理类拥有的方法基本相同。

                                                                         

             补: 可变和不可变、


                                                                                                                                                                                不可变:        一个内存地址只对应一个值;   赋一个值,一个地址就会绑定该数,再赋值会有新地址。(可变不可变原理:存储String时是final类型数组,地址不变,其它可变是因为没有final类型修饰)
                                                                                                                                                                               可变:一个内存地址可以对应多个值。是指地址不变,改值。对StringBuffer 和 StringBuilder 类型的值进行修改,地址不变。

字符串处理类相关的方法大部分类似,以String为例介绍字符串常用方法

三,字符串处理类常用方法:

获取字符串长度


使用 length() 方法可以获取字符串的长度(字符的个数)。

String str = "Hello, World!";
int length = str.length();
System.out.println("字符串的长度为: " + length); // 输出:字符串的长度为: 13


获取指定位置的字符


使用 charAt() 方法可以获取字符串中指定索引位置的字符。

String str = "Hello";
char ch = str.charAt(1); // 获取索引为1的字符,即 'e'
System.out.println("索引1处的字符为: " + ch); // 输出:索引1处的字符为: e


拼接字符串


使用 concat() 方法或者 + 运算符可以拼接多个字符串。

String str1 = "Hello";
String str2 = "World";
String result = str1.concat(" ").concat(str2);
System.out.println("拼接后的字符串为: " + result); // 输出:拼接后的字符串为: Hello World


字符串比较


使用 equals() 方法或者 compareTo() 方法可以比较字符串是否相等或者大小关系。

String str1 = "hello";
String str2 = "Hello";
if (str1.equals(str2)) {
    System.out.println("字符串相等");
} else {
    System.out.println("字符串不相等");
}

// 使用 compareTo() 比较大小关系
int comparison = str1.compareTo(str2);
if (comparison == 0) {
    System.out.println("字符串相等");
} else if (comparison < 0) {
    System.out.println("str1 小于 str2");
} else {
    System.out.println("str1 大于 str2");
}


查找子字符串


使用 indexOf() 方法可以查找子字符串在原字符串中第一次出现的位置。

String str = "Hello, World!";
int index = str.indexOf("World");
System.out.println("子字符串在原字符串中的位置为: " + index); // 输出:子字符串在原字符串中的位置为: 7


切割字符串


使用 split() 方法可以根据指定的分隔符将字符串分割成子字符串数组。

String str = "apple,orange,banana";
String[] fruits = str.split(",");
for (String fruit : fruits) {
    System.out.println("水果: " + fruit);
}
// 输出:
// 水果: apple
// 水果: orange
// 水果: banana


字符串替换


使用 replace() 方法可以替换字符串中的指定字符或字符串。

String str = "Hello, World!";
String replaced = str.replace("Hello", "Hi");
System.out.println("替换后的字符串为: " + replaced); // 输出:替换后的字符串为: Hi, World!


字符串转换大小写


使用 toUpperCase() 和 toLowerCase() 方法可以将字符串转换为大写或小写。

String str = "Hello, World!";
String upperCase = str.toUpperCase();
String lowerCase = str.toLowerCase();
System.out.println("大写字符串: " + upperCase);
System.out.println("小写字符串: " + lowerCase);
// 输出:
// 大写字符串: HELLO, WORLD!
// 小写字符串: hello, world!

四,异常处理机制:

                 作用/目的:         保证程序不是因为一些小问题就终止,而是可以正常运行

异常的分类:

                异常处理机制可以根据处理方式和异常类型进行分类。在Java中,异常主要分为两类:已检查异常(Checked Exceptions)和未检查异常(Unchecked Exceptions)。

1. 已检查异常 (Checked Exceptions)


         已检查异常是指编译器在编译时强制检查的异常,必须在代码中显式处理或声明抛出。通常情况下,这些异常是由外部因素(如文件不存在、网络连接中断等)导致的,程序本身无法避免或预料到的情况。

例:IOException:处理文件操作中的输入输出异常,如文件不存在、读写权限问题等。
 

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class CheckedExceptionExample {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
            String line = reader.readLine();
            System.out.println("读取的内容: " + line);
            reader.close();
        } catch (IOException e) {
            System.out.println("文件操作出错: " + e.getMessage());
        }
    }
}


2. 未检查异常 (Unchecked Exceptions也称运行异常:Runtime Exceptions)


        未检查异常是指编译器在编译时不强制检查的异常,也称为运行时异常。这类异常通常是由程序错误引起的若未处理会导致程序终止,如空指针引用、数组下标越界等,通常应通过编码规范和测试来避免。

例:

NullPointerException:当程序试图访问一个空对象的成员变量或方法时抛出。

public class UncheckedExceptionExample {
    public static void main(String[] args) {
        String str = null;
        try {
            System.out.println("字符串长度: " + str.length()); // 这里会抛出 NullPointerException
        } catch (NullPointerException e) {
            System.out.println("发生空指针异常: " + e.getMessage());
        }
    }
}

异常处理的两种应对方案:


             第一种:try catch方法:

                        主要用于“出现的问题,我能解决”(即我可以发现明确知道那些代码可能会出哪些对应错误)用于捕获和处理异常,允许在发生异常时执行特定的代码块。

           使用方法     

         try{//try复制监控异常,在try的大括号中写入可能出现异常的代码

                                                                                                                                                                                      }catch(){//catch捕获异常

                                                                                                                                                                                   }finally{//善后异常(一般来讲都是对一些占有资源的关闭)finally中的代码一定执行,不管有没有报错。

                                 }

                                                                                          

注:try里代码没有问题:不执行任何catch,执行finally,
                有问题:执行类型匹配的catch块内容,执行finally
                                         没有找到匹配的catch,扔执行finally,报错

  第二种:throws方法

        用于:“出现的问题,解决不了”即不清楚会出什么错误,用于方法声明中,表示方法可能抛出的异常类型,让调用者处理异常。。

直接在方法或类声明时在后方加                       throws         +异常类型

五,常见Runtime异常:

NullPointerException(空指针异常):
                    

        当试图访问一个空对象的成员变量或者调用空对象的方法时抛出。
常见原因包括未初始化对象引用、调用返回空值的方法并试图使用其结果、显式设置为null的对象等。


ArrayIndexOutOfBoundsException(数组越界异常):
                    

        当尝试访问数组中不存在的索引位置时抛出。
常见原因包括使用超出数组长度的索引、使用负数索引、在尝试访问数组之前未对其进行初始化等。


ClassCastException(类转换异常):
                    

当试图将一个对象强制转换为不是其子类的类类型时抛出。
常见原因包括将对象转换为其实际类型不兼容的类型、在继承结构中转换类型时出现问题等。


NumberFormatException(数字格式异常):
                    

当试图将一个字符串转换为数值类型(如int、float、double等)但字符串的格式不正确时抛出。
常见原因包括字符串包含无法转换为数字的字符、字符串为空或不包含有效的数字字符等。


FileNotFoundException(文件未找到异常):
                    

当试图打开一个不存在的文件时抛出。
常见原因包括文件路径错误、文件不存在或者无法被当前程序访问等。


ArithmeticException(算术异常):
                    

当发生数学运算错误时抛出,例如除数为零。
常见原因包括试图将一个数除以零、在数学计算中出现溢出等。


IOException(输入输出异常):
                    

当发生输入输出操作失败或被中断时抛出,是许多其他I/O异常的父类。
常见原因包括文件操作期间发生错误、网络操作失败、设备断开连接等。


RuntimeException(运行时异常):
                    

是所有运行时异常的父类,通常不需要显式捕获或声明。
包括诸如NullPointerException、ArrayIndexOutOfBoundsException等在内的许多常见异常都属于RuntimeException的子类。
                      

标签:String,处理,System,println,字符串,异常,out
From: https://blog.csdn.net/weixin_72637723/article/details/140803943

相关文章

  • 字符串系列目录&&说明
    字符串准备写成一个系列。目录\(\text{KMP笔记}\)\(\text{Manacher笔记}\)[][][]格式与说明下面的说明和格式将被应用于整个系列。说明所有字符串的下标从\(1\)开始。所有的实际字符串使用\texttt字体。如\(s=\texttt{abac}\)。所有算法名和公......
  • 异常
    什么是异常在编程中,异常(Exception)是指程序运行过程中发生的不正常或非预期的行为,它可能由编程错误、硬件故障、用户操作不当或其他外部因素引起。异常处理是程序设计中非常重要的一部分,它允许程序在遇到错误时,能够优雅地处理错误情况,而不是直接崩溃或产生不可预测的行为。异常......
  • 高速图像采集卡设计原理图: 613-基于6UVPX C6678+XCVU9P的信号处理板卡
    基于6UVPXC6678+XCVU9P的信号处理板卡一、板卡概述      板卡基于6U VPX标准结构,包含一个C6678 DSP芯片,一个XCVU9P 高性能FPGA,双路HPC FMC。  二、处理板技术指标•  DSP处理器采用TI 8核处理器TMS320C6678;•  DSP 外挂一组64bit DDR3......
  • Windows bat批处理 新建一个日期时间文件夹 变日期和时间两个文件夹
    前言全局说明Windowsbat批处理新建一个日期时间文件夹变日期和时间两个文件夹一、说明环境:Windows11家庭版23H222631.3737二、错误的结果文件名:time_dir_Y-M-D_H-M_err.bat@echooff::获取当前日期,格式:20190909SETyear=%date:~0,4%SETmonth=%date:~5,......
  • 简单设计一个JAVA并行处理工具类
    在工作中,我们肯定遇到过一个接口要处理N多事项导致接口响应速度很慢的情况,通常我们会综合使用两种方式来提升接口响应速度优化查询SQL,提升查询效率开启多线程并发处理业务数据这里讨论第二种方案:使用多线程并发处理业务数据,最后处理完成以后,拼装起来返回给前端,每个人的实现方......
  • MATLAB在算法处理上的作用
    MATLAB在算法处理上的作用引言MATLAB(MatrixLaboratory)是由MathWorks公司开发的一种高性能语言及其交互环境,广泛应用于数学计算、算法开发、数据分析、仿真建模等领域。其强大的计算能力、丰富的工具箱和高效的可视化功能使其在算法处理方面表现出色。本文将详细探讨MATLAB在......
  • 异常的处理
    异常的处理只有两种方式抛出异常捕获异常抛出异常什么是抛出异常?目前为止任何异常,默认的处理方式都是抛出所谓抛出异常就是直接将错误信息打印到控制台怎么声明抛出异常?如果是运行时异常,不用处理,默认就会自动抛出如果是编译期异常,想要抛出异常,语法是位置:在方......
  • 【RISC-V设计-05】- RISC-V处理器设计K0A之GPR
    【RISC-V设计-05】-RISC-V处理器设计K0A之GPR1.简介通用寄存器(GeneralPurposeRegister)是处理器设计中的重要组成部分,在数据处理和指令执行过程中发挥着关键作用,对于计算机系统的整体性能和效率有着至关重要的影响。通用寄存器用于传送和暂存数据,也可参与算术逻辑运算,并......
  • day32【LeetCode力扣】541. 反转字符串 II
    day32【LeetCode力扣】541.反转字符串II1.题目描述给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。如果剩余字符少于k个,则将剩余字符全部反转。如果剩余字符小于2k但大于或等于k个,则反转前k个字符,其余字符......
  • 2-2 字符串的基本操作函数及注意事项(超详细)
    目录字符串操作函数分类1.字符串长度和复制2.字符串连接3.字符串比较4.字符串查找5.字符串转换6.字符串复制和移动7.字符串填充和比较字符串操作函数使用1.strlen函数2.strcpy函数3.strcat函数4.strcmp函数5.strncpy函数6.strncat函数7.s......