当前位置: 首页 > news >正文

初识Java(六)

一、String类

1、类中有操作字符串的方法

查找:找到某个字符是字符串内的第几个:charAt;找到某个字符在字符串内第一次出现的下标:index

替换:替换所有:replaceAll;替换首个:replaceFirst

比较:比较对象内的字符是否相等:equals;

转换:转成大写:toUpperCase;转成小写:toLowerCase;类型转换:转成int类型:valueOf;格式化:format

拆分:以某个符号拆分:split(String regex) ;拆分后,分为几组:String[] split(String regex, int limit)

截取:String substring(int beginIndex) :从索引处截取到结尾;String substring(int beginIndex, int endIndex) :截取部分内容

其他:删除字符串内的空格:trim

2、StringBuffer和StringBuilder

上面那些操作字符串的方法,不是在字符串本身操作的,最后操作完之后会返回一个新的字符串。

String类的不可变性

因为String类内部获取字符下标的value的修饰符是private,隐藏在类里面,并且类里面也没有操作value的方法,所以获取不到下标,就操作不了字符串。

那么是如何操作的呢?

将String类转换为StringBuffer或者StringBuilder这两个类,这两个类与String类的大部分功能相似。

第一步:String类转换为StringBuilder类。方法:通过调用StringBuilder的append方法或者构造方法转换,然后再对字符串进行操作。

第二步:操作完后,StringBuilder类转换为String类。方法调用StringBuilder类的toString方法

但是这两个有区别:

StringBuffer可以对线程进行保护,但是效率低,而StringBuilder不对线程保护,但效率高。

 

二、异常

例如常见的:算数异常,空指针异常,这些都属于异常。
异常分为编译时异常和运行时异常。

        产生的异常需要处理,如果在某时不想处理,就先抛出这个异常,并且还要声明一下,告诉方法的调用者在当前方法不处理这个异常,这里有个异常需要你来捕获处理一下,然后将异常向上传递,传给方法的调用者,但是如果是运行时异常抛出后,不需要处理,直接交给jvm,编译时异常,就继续向上传递了,若方法调用者不想处理,就继续向上传递,最后传到jvm里面,就中断程序了。

抛出异常:

public static int getElement(int[] array, int index){
if(null == array){
throw new NullPointerException("传递的数组为null"); 
//异常的抛出使用throw关键字
}
}

异常的声明:

public void OpenConfig(String filename) throws IOException{ //使用throws声明异常
if(filename.endsWith(".ini")){
throw new IOException("文件不是.ini文件");
}

异常的捕获处理:

try{
// 将可能出现异常的代码放在这里
}catch(要捕获的异常类型 e){
// 如果try中的代码抛出异常了,此处catch捕获时异常类型与try中抛出的异常类型一致时,或者是try中抛出异常的基类
时,就会被捕获到
// 对异常就可以正常处理,处理完成后,跳出try-catch结构,继续执行后序代码
}[catch(异常类型 e){
// 对异常进行处理
}finally{
// 此处代码一定会被执行到
}]

finally这个关键字的功能是用来释放资源的,所以finally处的代码无论异常有没有被成功捕获都会被执行。

http://www.lryc.cn/news/410093.html

相关文章:

  • Spring-原理篇-DispatcherServlet 初始化 怎么和IOC进行了打通?
  • 关于swift- OC混编使用Pod遇到的2个错误
  • Golang | Leetcode Golang题解之第290题单词规律
  • 【Django5】模型定义与使用
  • HTML--JavaScript操作DOM对象
  • Redis 缓存
  • Prozyme糖样本检测平台--GlykoPrep® Rapid N-Glycan Preparation with APTS
  • 力扣面试题(一)
  • Python 输入输出
  • 国服最强文字转音频?Fish Speech
  • 数据结构(6):图
  • kaggle使用api下载数据集
  • 前缀表达式(波兰式)和后缀表达式(逆波兰式)的计算方式
  • 智能井盖管理系统:城市窨井的井下“保镖”
  • vue3-环境变量-JavaScript-axio-基础使用-lzstring-字符串压缩-python
  • ubuntu下载docker依赖包
  • java面向对象进阶进阶篇--《JDK8,JDK9接口中新增的方法、接口的应用、适配器设计模式》
  • 15.2 zookeeper java client
  • 素材管理太繁琐?有这一个就够了!
  • KubeSphere 部署向量数据库 Milvus 实战指南
  • 前端canvas——贝塞尔曲线
  • Elasticsearch模糊查询之Wildcard
  • 【人工智能】穿越科技迷雾:解锁人工智能、机器学习与深度学习的奥秘之旅
  • Nginx服务 rewrite、proxy_pass 用rewrite去除URL中的特定参数
  • RocketMQ事务消息机制原理
  • 【C++】选择结构- 嵌套if语句
  • scrapy解决管道阻塞问题采用threadpool库线程池+twisted同步语法异步编程
  • Axure RP:打造动态交互的大屏可视化设计利器
  • “八股文”在实际工作中是助力、阻力还是空谈
  • 项目开发:@ControllerAdvice注解的基本应用