1String类
String类描述的是文本字符串序列。 留言 QQ 写日志。
创建String类的对象的两种方式:
""直接赋值法
new关键字法
1.1字符串对象的比较
String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。
String str3 = new String(“jack”) 该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。
1.1获取方法
int length() 获取字符串的长度
char charAt(int index) 获取特定位置的字符 (角标越界)
int indexOf(String str) 获取特定字符的位置(overload)
int lastIndexOf(int ch) 获取最后一个字符的位置
1.1判断方法
boolean endsWith(String str) 是否以指定字符结束
boolean isEmpty()是否长度为0 如:“” null V1.6
Boolean contains(CharSequences) 是否包含指定序列 应用:搜索
Boolean equals(Object anObject) 是否相等
Boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等
1.1转换方法
String(char[] value) 将字符数组转换为字符串
String(char[] value, int offset, int count)
Static String valueOf(char[] data)
static String valueOf(char[] data, int offset, int count)
char[] toCharArray() 将字符串转换为字符数组
1.1其他方法
String replace(char oldChar, char newChar) 替换
String[] split(String regex) 切割
String substring(int beginIndex)
String substring(int beginIndex, int endIndex)截取字串
String toUpperCase() 转大写
String toLowerCase() 转小写
String trim() 去除空格
1.2练习
- 去除字符串两边空格的函数。
publicclassDemo1 {
// 定义一个祛除字符串两边空格的函数
publicstaticString trim( String str ){
// 0、定义求字串需要的起始索引变量
intstart = 0;
intend = str.length()-1;
// 1. for循环遍历字符串对象的每一个字符
for(inti = 0; i
{
if( str.charAt(i) == ' ' )
{
start++;
}else{
break;
}
}
System.out.println( start );
for(; end= 0; )
{
if( str.charAt(end) == ' ' )
{
end--;
}else{
break;
}
}
System.out.println( end );
// 2. 求子串
if( start < end ){
returnstr.substring( start , (end+1) );
}else{
return"_";
}
- 获取上传文件名 "D:\20120512\day12\Demo1.java"。
publicstaticString getFileName2( String path ){
returnpath.substring( path.lastIndexOf("\") + 1 );
}
}
- 将字符串对象中存储的字符反序。
// 将字符串对象中存储的字符反序
publicstaticString reaverseString( String src ){
// 1. 将字符串转换为字符数组
charchs[] = src.toCharArray();
// 2. 循环交换
for(intstart = 0 , end = chs.length - 1; start < end ; start++,end-- )
{
// 3. 数据交换
chartemp = chs[end];
chs[end] = chs[start];
chs[start] = temp;
}
// 4. 将字符数组转换为字符串
returnnewString( chs );
}
- 求一个子串在整串中出现的次数
publicstaticintgetCount( String src , String tag ){
// 0. 定义索引变量和统计个数的变量
intindex = 0;
intcount = 0;
// 1. 写循环判断
while( ( index = src.indexOf(tag) ) != -1 ) // jackjava
{
// 2. 求字串
System.out.println( src );
src = src.substring( index + tag.length() ); // index 4 + 4 = 8
System.out.print( src.length() + " : " + index + " : " + tag.length() );
// 3. 累加
count++;
}
returncount;
}
1StringBuffer
StringBuffer: 由于String是不可变的,所以导致String对象泛滥,在频繁改变字符串对象的应用中,需要使用可变的字符串缓冲区类。
特点:
默认缓冲区的容量是16。
StringBuffer : 线程安全的所有的缓冲区操作方法都是同步的。效率很低。
1.1添加方法
StringBuffer("jack") 在创建对象的时候赋值
append() 在缓冲区的尾部添加新的文本对象
insert() 在指定的下标位置添加新的文本对象
StringBuffer sb =newStringBuffer("jack");
sb.append(true);
sb.append('a');
sb.append(97).append(34.0).append(newchar[]{'o','o'}); // 链式编程
System.out.println( sb.toString() ); // 输出缓冲区的中文本数据
sb =newStringBuffer("jack");
sb.insert( 2, "java" ); // jajavack
System.out.println( sb.toString() );
1.2查看
toString() 返回这个容器的字符串
indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。
substring(int start) 从开始的位置开始截取字符串
1.3修改(U)
replace(int start int endString str) 使用给定 String 中的字符替换此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符
setCharAt(int index char ch) 指定索引位置替换一个字符
1.4删除(D)
1.5反序
reverse() 把字符串反序输出。
1StringBuilder
StringBuilder 是JDK1.5之后提出的,线程不安全,但是效率要高。用法与StringBuffer类似。
2System
System 可以获取系统的属性。
1Runtime
Runtime 类主要描述的是应用程序运行的环境。
1Date
Date 类封装的是系统的当前时间.。但是Date已经过时了,sun推荐使用Calendar类。
Calendar: 该类是一个日历的类,封装了年月日时分秒时区。
日期格式化类:SimpleDateFormat
1Math
Math:类封装了很多数学的功能。
练习:生成一个随机码
注:加群要求 学习交流群:450936584
1、想学习JAVA这一门技术, 对JAVA感兴趣,想从事JAVA工作的。
2、工作0-5年,感觉自己技术不行,想提升的
3、如果没有工作经验,但基础非常扎实,想提升自己技术的。
4、还有就是想一起交流学习的。
5、小号加群一律不给过,谢谢。
群内每天会分享最新的视频和资料,可以免费领取学习视频和资料转发此文章请带上原文链接,否则将追究法律责任!