String类
一、基础知识
在Java中将字符串作为对象来处理,有两种创建形式:String str=”abc”;String str=new String(“abc”). String是不可变对象。
空串("")是长度为0的字符串,可以用if(str.length()==0)或者if(str.equal(""))来判断是否为空串。String变量还可以存放一个特殊的值(null),表示目前没有任何对象与该变量关联。检查一个字符串是否为null可以用if(str==null)判断。
二、常用API
int indexOf(char ch):用来检查给定的一个字符在当前字符串中第一次出现的下标位置。
String substring(int begin,int end):用来截取当前字符串的部分内容以获取这个子字符串。
String trim():将字符串两边的空白(空白有很多种,空格是其中之一)去除掉
char charAt(int index):用于给定一个下标位置,来获取该字符串中这个位置的字符。
boolean startsWith(String suffix):用来判断当前字符串是否是以给定的字符串开始的。这里要注意大小写是敏感的。
boolean endsWith(String suffix):用来判断当前字符串是否是以给定的字符串结尾的。
String toUpperCase():用来将当前字符串中的英文部分的字符全部变为大写后再将新的字符串返回
String toLowerCase():用来将当前字符串中的英文部分的字符全部变为小写后再将新的字符串返回
字符串提供了很多重载的valueOf()方法,可以将其他基本类型的值以字符串的形式描述。
三、StringBuilder和StringBuffer
有些时候需要由较短的字符串构建字符串,采用字符串连接的方式效率比较低,每次连接字符串都会构建一个新的String对象,既耗时又浪费空间。使用StringBuilder类就可以避免这个问题。
1.StringBuilder是可变字符串。StringBuilder的很多方法的返回值均为StringBuilder类型。
2.StringBuilder类的常用方法有:
append(String str):追加字符串;
insert (int dstOffset,String s):插入字符串;
delete(int start,int end):删除字符串;
replace(int start,int end,String str): 替换字符串;
reverse():字符串反转。
3.StringBuffer 和StringBuilder的区别:
StringBuffer是线程安全的,同步处理的,性能稍慢;
StringBuilder是非线程安全的,并发处理的,性能稍快。
四、正则表达式
正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用该格式规则匹配某个字符串是否符合格式要求。
(1)相关表示
"."点儿,在正则表达式中表示任意一个字符。
\d:表示任意一个数字
\w:表示任意一个单词字符(只能是 数字,字母,下划线)
\s:表示任意一个空白字符(\t \r \n \f \x0B)
\D:表示任意一个非数字字符
\W:表示任意一个非单词字符
\S:表示任意一个非空白字符
"[]"用来描述单一字符,方括号内部可以定义这个字符的内容,也可以描述一个范围
"+":表示内容可以连续出现至少1次以上
"*":表示内容出现0-若干次
"?":表示内容出现0-1次
{n}:表示内容必须出现n次
{n,m}:表示内容出现n-m次
{n,}:表示内容出现至少n次
通过在正则表达式的开始添加"^"以及末尾添加"$"来表示一个整体。若不使用它们,那么正则表达式只匹配某个字符串的部分内容是否符合格式规则,但使用它们,则要求字符串必须从头到尾都满足该格式规则。
(2)相关API
matches()方法的参数要求我们传入一个用字符串描述的正则表达式,然后使用该正则表达式描述的字符串格式规则来匹配当前字符串,若满足那么该方法返回true。否则返回false。
String[] split(String regex):参数要求传入一个用字符串描述的正则表达式,然后使用该正则表达式描述的字符串规则来匹配当前字符串,并按照满足的部分将字符串拆分。
String replaceAll(String regex,String replacement):参数要求传入一个用字符串描述的正则表达式和一个需要替换的字符串,然后使用该正则表达式描述的字符串规则来匹配当前字符串,并将满足的部分替换为需要替换的这个字符串。
四、日期时间相关
1、Date:
Java中的时间使用标准类库的Date类表示,是用距离一个固定时间点(1970年 1月 1日 00:00:00)的毫秒数(可正可负,long类型)表达一个特定的时间点。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代。
void setTime(long time):该方法用于为一个Date对象设置其需要表示的时间,
long getTime():该方法用于获取一个Date对象所表示的时间点,该返回值为一个long值
实际上Date的toString()方法返回的字符串虽然很清晰的描述了时间,但是对于非英语地区来讲不友好,可使用SimpleDateFormat来格式化。
2、SimpleDateFormat:
SimpleDateFormat 是一个用来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。简单的说,SimpleDateFormat就是根据一个特定的日期格式在字符串与Date之间相互转换。
String format(Date d):将Date格式化为String
Date parse(String s) :将String解析为Date
3、Calendar:
(1)java.util.Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。
(2)Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。
(3)Calendar是抽象类,其提供了一个工厂方法:Calendar getInstance()。该方法可以根据当前系统所在地区获取一个适当的Calendar的子类实现。
(4)Calendar的void setTime(Date date),允许我们为Calendar设置Date对象所表示的时间。
Calendar的 Date getTime(),允许我们获取一个使用Date对象描述的Calendar所表示的时间。
<!--EndFragment-->
相关推荐
Java编程语言在面试中是必不可少的话题,特别是在...以上知识点是Java面试中常见的问题,掌握这些知识对于准备Java面试至关重要。面试时,候选人还需要展示问题解决能力、编程技巧以及对Java框架和其他相关技术的理解。
Java面试必备文档涵盖了许多核心Java概念,以下是针对标题和描述中的关键知识点的详细说明: 1. **面向对象的特征** - **抽象**:抽象是将复杂问题简化,关注主要功能,忽略次要细节。在Java中,这通常通过接口和...
│ Java面试题08.String.mp4 │ Java面试题09.讲一下java中的集合.mp4 │ Java面试题10.ArrayList LinkedList.mp4 │ Java面试题11.HashMap和HashTable的区别.mp4 │ Java面试题12.实现一个拷贝文件的类使用字节流...
Java面试八股文是针对Java开发者准备面试时的必备复习资料,涵盖了广泛的Java技术领域,包括基础、框架、中间件、数据库、操作系统、虚拟机等多个方面。以下是对这些知识点的详细解析: ### Java基础 1. **Java语言...
总的来说,理解`String`的不可变性、`StringBuffer/StringBuilder`的动态拼接以及`HashMap`和`Hashtable`在映射数据结构中的使用,是Java编程和面试中的基础知识点。熟悉这些概念对于解决实际问题和提升代码性能至关...
【JAVA面试知识点详解】 在Java面试中,面试官通常会关注候选人的基础知识、编程技能以及对框架和设计模式的理解。以下是一些常见的面试知识点: 1. **面向对象的特征** - **抽象**:抽象是将复杂问题简化,只...
"疯狂Java面试题(疯狂Java讲义精粹附赠).pdf" 本资源是关于Java面试题的集合,涵盖了Java核心技术部分的面试题,包括Java基本语法、面向对象、Java常用API、Java集合框架、注解、泛型、输入/输出、多线程、网络...
为了帮助开发者们在面试中脱颖而出,市面上出现了许多专注于Java面试的指南书籍,其中《Java高分面试指南》以其全面的内容和深入浅出的讲解方式,成为了众多求职者的青睐之作。在这份指南中,不仅覆盖了Java的基础...
本文总结了Java基础知识部分的重要知识点,涵盖了Java面试中常见的问题,包括作用域、String类、int和Integer的区别、String和StringBuffer的区别、运行时异常与一般异常的异同、Servlet的生命周期、ArrayList、...
03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个Java经典的Main方法面试题!.pdf 06 10个Java经典的String面试题!.pdf 07 15道经典的Tomcat面试题!.pdf 08 15道面试常问的...
Java作为一门编程语言,在面试过程中被广泛考察,而《Java 最常见 200+ 面试题全解析:面试必备》这份文件,显然是为希望在Java领域深造的求职者和从业者准备的一份复习资料。文档中所包含的面试题按照知识点被...
### 初级Java面试题集锦(面试必备) 在准备Java相关的面试时,掌握基础知识尤为重要。本文将基于“初级Java面试题集锦(面试必备)”这一主题进行深入解析,帮助求职者更好地理解和掌握Java的基础知识及面试中常见...
在Java面试中,理解JDK与JRE的区别是非常基础且重要的。JDK(Java Development Kit)是Java开发工具包,它包含了JRE(Java Runtime Environment)以及用于开发和调试Java应用程序的各种工具,如编译器Javac、Javadoc...
了解 String 的特点和使用方法是 Java 开发者必备的技能之一。下面我们将对 10 个 Java 经典的 String 面试题进行详细解答。 1. String 是基本数据类型吗? 答案:String 不是基本数据类型。Java 中的基本数据类型...
在Java面试中,掌握核心知识点至关重要,这关系到你能否成功获取理想的职位。以下是一些关键的Java面试知识点,它们涵盖了面向对象、基础类型、异常处理、字符串处理、集合框架以及企业级Java应用等方面。 1. **...
### Java面试必备知识点详解 #### 一、Java面试必读文档前100题 根据题目中的描述,这里提到了“java面试必须要读文档前100道题”,虽然具体的题目内容没有给出,但我们可以推测这100题涵盖了Java面试中常见的知识...
标题《JAVA面试必备20题.pdf》说明了文档的主要内容是关于Java面试中常见且重要的20个问题。文档的描述“对标大厂,一点心得”表明这些问题不仅涵盖了基础知识,而且能够对标大型企业的面试要求,可能包含了作者在...
### JAVA经典面试必备知识点详解 #### 一、final, finally, finalize的区别 1. **final**:这是一个关键字,用于修饰类、变量或方法。当一个类被声明为final时,表明该类不能被继承,即不能有子类。同样,final...
根据给定文件内容,这里涉及的知识点涵盖了Java面试中的多个方面,包括但不限于JDK与JRE的区别、Java基本类型与引用类型中"=="和"equals"方法的区别与实现原理等。下面将详细展开这些知识点。 ### JDK与JRE的区别 ...