<script src="https://code.csdn.net/snippets/268577.js" type="text/javascript"></script>
<script src="https://code.csdn.net/snippets/268645.js" type="text/javascript"></script>
String toLowerCase() 吧字符串大写转化成小写
String toUpperCase() 吧字符串大写转化成小写
String indexof(String str) 按照从左至右顺序查找str的位置,值查找第一个str就返回,找不到就返回-1.
String indexof(char c)
String indexof(String str,int loc ) 从loc位置开始,从左查找字符串的第一次出现的位置。
String ilastIdexof(String str ) 从字符串的微博查找字符串str的第一次出现的位置。
String subString(int i) 从i的位置开始到字符串结尾的字符串截取出来
String subString(int start,int end) 截取从start到end-1的位置的字符串。
String concat(String str) 连接字符串,和加号的作用一样
char[] tocharArray 吧字符串转化成字符串数组
new String(char[] c) 把字符数组转化成字符串
8))字符串和正则
1)))api
boolean match(String regex) ;用于判断当前的字符串是否符合regex正则表达式。
String split (String regex) 根据regex将字符串切割成多个字串
String replaceAll(String regex ,String str); regex为要被替换的正则表达式,str为替换的内容。
2)))正则表达式:
一个字符串,用指定字符来限制当前字符串的内容
1))))正则的语法:
普遍的字符串 ”abc“
【】 代表当前位置可以出现的字符
{}代表当前字符串可以出现的次数:示例,手机号码,num.matches("[1]{1}[3458]{1}[0-9]{9}");
注:【0-9】- 从起始位置到结束之间的字符串多可取。
^ 字符串的起始位置,行的开头
$字符串的结束位置,行的结尾
示例:用户名:字母,数字,下划线,长度为6,20.
^[0-9a-zA-Z_]{6,20}$
或者^\\w{6,20}$ 其中\是用于转换的
{start,end} 代表可以出现start到end之间数字的次数
\d 代表【0-9】
\D 代表非数字
\w 代表【a-zA-Z0-9_】 字符
\W 代表【^\w】
StringBuilder,StringBuffer
1.特点:
都是被final修饰,不能被继承
都是动态字符序列(采用动态数组的算法,来实现动态存储数据方式,完成字符串的动态存储,采用变长数组存储)
内存对象内容是可变的,说明他们是一个可变的字符序列
1)
StringBuilderAPI
StringBuilder append(String) 向原字符串追加新的字符串
StringBuilder insert(int index,String str) 在index位置向原字符串插入新的字符串str,index从0开始
StringBuilder delete(int index,int end)删除start到end的字符串,小标不包含end,即到end-1
2.应用场景
有大量的字符串操作
3.String,StringBuilder,StringBuffer之间的转化
StringBuilder,StringBuffer到String的转化:调用toString()方法
String转化到 StringBuilder,StringBuffer:使用对应的构造器,比如:new StringBuilder(String str);
注:java优化String代码的示例:
<script src="https://code.csdn.net/snippets/268907.js" type="text/javascript"></script>
4.StringBuilder,StringBuffer之间的关系
1)相同点:
内部是char[],是可变的字符序列
API大致相同
2)不相同点:
StringBuffer,是java早期引入的,线程安全,速度慢
StringBuilder,是java 5.0引入的,非线程安全,速度快
3)总结
String采用定长数组,StringBuilder,StringBuffer采用变长数组
包装类
全部被final修饰,顺便提一下,java.lang.Math,System,String也被final修饰
包装类是使用面向对象的思想把简单的数据类型封装成类。
1.特点
包装类把简单的数据类型包装成类。
注:简单数据类型不是类,使用简单数据类型主要为了提高代码的运行效率
2.装箱和拆箱
把简单数据类型包装成对应的包装类称为boxing(示例:Integer i=1;将1包装成Integer再使用Object引用Integer对象)
把包装类型转换成简单数据类型称为unboxing(示例:Integer i=1,int p=i;//将包装类Integer转化成简单数据类型int)
注:Integer的拆箱方法为 int intValue(),其他的包装类以此类推
1)包装类都重写了toString方法,equals方法,hashCode方法
2)Integer的API:
String toBinaryString(int i); 将int类型的数据以二进制字符串形式返回
int parseInt(String) 将字符串转化成int类型
int parseInt(Stringstr,int i) 将字符串转化成对应的进制类型,str为被转换的字符串,i为进制类型(10,8,16)
Integer valueof(String str) 将字符串转换成Integer类型。
时间类和日期类
时间可用long类型来表示。
1)long System.currentTimeMillis();//从计算机的计时元年到当前时间的时间差,以毫秒为单位。
1.时间类
Date java.util.Data
1)API
int getYear(),返回一个值,此值是从包含或开始于此Date
对象表示的瞬间的年份减去 1900 的结果
int getMonth();从0开始
int getDate();获取日
int Day();获取星期几,星期天为0
int getHours() 获取小时
int getMinutes();获取分钟
int getSeconds() 获取秒
long getTime返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此Date对象表示的毫秒数
new Date(long l) 将时间差转换成Date类型
2.日历类
CalendarCalendar
类是一个抽象类,补充一点抽象类的非抽象方法可调用抽象方法
Calendar的直接已知子类:GregorianCalendar提供了世界上大多数国家使用的标准日历系统
1)Calendar的API
static Calendar getInstance()使用默认时区和语言环境获得一个日历。
int get(int field) 返回给定日历字段的值。 其中的field为Calendar
对应的常量(static int YEAR 指示年的 get 和 set 的字段数字。)
void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间。 将Calendar 转成Date类型
Date getTime() 返回一个表示此 Calendar 时间值(从历元1970至现在的毫秒偏移量)的 Date 对象。将Date转成Calendar 类型
2)总结:
3)补充:字符串和日期之间的转换
1))java.text.DateFormat,DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。
日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、分析(文本-> 日期)和标准化。
2))直接已知子类:SimpleDateFormat,SimpleDateFormat
是一个以与语言环境相关的方式来格式化和分析日期的具体类。
3))将字符串转换为日期类:
注:
DateFormat df=new
SimpleDateFormat(日期模式字符串);
Date
df.parse(String source) 从给定字符串的开始分析文本,以生成一个日期。
3))将日期类转换为字符串
DateFormat df=new
SimpleDateFormat(日期模式字符串);
String df.format(Date date) 将一个 Date 格式化为日期/时间字符串。
相关推荐
### JAVA经典教材笔记知识点梳理 #### 第一章:JAVA概述及开发环境搭建 - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA...
### Java私塾学习笔记整理 #### 第一章:Java入门 ...以上内容涵盖了Java基础知识的重要方面,从语言基础到高级特性,以及常见的开发技术和工具,帮助读者全面了解Java编程的基础知识和技术要点。
- `StringBuffer`(以及`StringBuilder`)表示可变的字符序列,可以在不创建新对象的情况下修改字符串内容。 - **基础数据类型与包装类**: - Java中的基础数据类型默认分配在栈上,但可以通过它们对应的包装类...
- **字符串转换为包装类**:使用包装类提供的`valueOf(String s)`方法。 - **包装类转换为字符串**:使用`toString()`方法。 - **字符串转换为基本数值类型**:使用包装类提供的静态方法,如`Integer.parseInt...
日期和时间类,如Date、DateFormat和Calendar,帮助处理日期和时间格式。枚举类型提供了一种创建常量集合的方式。 集合框架是Java编程中不可或缺的部分,泛型增加了类型安全,避免了强制类型转换。Collection接口和...
4. **Integer类**:Integer是Java中的包装类,用于封装基本类型int。`equals()`方法不仅可以比较对象是否相等,还可以比较基本类型的值是否相等,比如`Integer a = 10; Integer b = 10; a.equals(b)` 返回true。 5....
String,StringBuffer和StringBuilder `String`类是不可变的,每次对`String`对象进行修改都会创建新的`String`对象,导致不必要的内存消耗。在进行字符串拼接时,推荐使用`StringBuffer`或`StringBuilder`。 - *...
- Calendar类提供了更高级的时间和日期操作。 12. **System** - System类提供了与系统相关的操作,如获取系统属性、垃圾回收等。 #### 六、线程技术 1. **进程和线程** - 进程是程序的一次执行过程,线程是...
以上是根据传智播客视频JavaSE学习笔记总结的关键知识点,覆盖了Java基础环境配置、字符串操作、多线程编程、集合框架、输入输出流、网络编程、反射机制、正则表达式等多个方面,希望对Java初学者和进阶者有所帮助。
#### 十七、String、StringBuffer和StringBuilder的区别 - **String:** 不可变的字符串,适合读取操作。 - **StringBuffer:** 线程安全的可变字符串。 - **StringBuilder:** 不线程安全但性能更高的可变字符串。 #...
Java面试总结涉及Java基础知识和并发方面的面试题目和概念,包括JRE与JDK的区别、Java数据类型、集合类的使用、基本和引用类型的比较、hashcode()的作用,以及Java多线程的概念和相关问题。以下是详细的知识点: 1....
### Java学习笔记知识点详解 #### 一、方法的返回值类型及术语理解 - **invoke**:调用,指的是在程序中对一个方法或者函数的使用。 - **terminate**:结束,指方法运行完成后的终止状态。 - **stream**:流,主要...
6. **包装类、装箱和拆箱**:基本数据类型都有对应的包装类,装箱是将基本数据类型转换为对应的包装类实例,拆箱则是相反操作。 7. **String、StringBuilder和StringBuffer**:String是不可变的,每次操作都会生成...
除了`String`类之外,Java还提供了`StringBuilder`和`StringBuffer`类用于构建和操作字符串。 ##### List集合 `List`接口是Java集合框架的一部分,表示有序的元素集合。常见的实现类有`ArrayList`和`LinkedList`。 ...
{4.10}包装类}{87}{section.4.10} {4.11}集合的复制}{88}{section.4.11} {4.12}集合的同步化}{89}{section.4.12} {4.13}集合转换为数组}{89}{section.4.13} {4.14}数组转换为集合}{89}{section.4.14} {4.15}...