Java上路11-字符串
来源:互联网 发布:我的淘宝界面音乐 编辑:程序博客网 时间:2024/06/05 06:31
一. String:
字符串是final类。创建字符串对象后,将不能更改构成字符串的字符。
class Test{ String s1="ABC"; //在内存新建一个字符串对象 String s2="ABC"; //内容相同,指向上一个对象 String s3=new String("ABC"); //新建 char[] chars={'A','B','C'}; String s4=new String(chars); //新建 public void compare () { System.out.println("s1==s2" + (s1==s2)); System.out.println("s1==s3" + (s1==s3)); System.out.println("s1==s4" + (s1==s4)); System.out.println("s3==s4" + (s3==s4)); System.out.println("s1.eauals(s2)" + s1.equals(s2)); System.out.println("s1.eauals(s3)" + s1.equals(s3)); System.out.println("s1.eauals(s4)" + s1.equals(s4)); System.out.println("s3.eauals(s4)" + s3.equals(s4)); }} class StringTest{ public static void main(String[] args) { new Test().compare(); }}
1. 字符串比较:
方法
说明
==
比较引用地址,判断是否为同一个目标。返回真假
equals ( )
比较值,判断内容是否相同。返回真假
equalsIgnoreCase ( )
忽略大小写进行比较值。返回真假
compareTo ( )
按字母顺序比较两个字符串的值。相等返回0,比较字符串在参数字符串之前返回值小于0,否则返回值大于0
startsWith ( )
是否以参数字符串开始。返回真假
endsWith ( )
是否以参数字符串结束。返回真假
class StringTest{ public static void main(String[] args) { String s1="ABC"; String s2="abc"; String s3="ABcDe"; String s4="ABcde"; //equalsIgnoreCase()忽略大小写比较 //compareTo()按字母顺序比较。基于字符串中各个字符的Unicode值 //startsWith()判断是否以参数为开始 //endsWith()是否以参数为结束 System.out.println("s1.equalsIgnoreCase(s2)" + s1.equalsIgnoreCase(s2)); System.out.println("s3.compareTo(s4)" + s3.compareTo(s4)); System.out.println("s3.startsWith(\"AB\")" + s3.startsWith("AB")); System.out.println("s4.endsWith(\"dr\")" + s4.endsWith("dr")); }}
2 搜索字符串:
方法
说明
indexOf(int ch)
返回第一次出现的字符ch的索引
indexOf(String str)
返回第一次出现的字符串str的索引
lastIndexOf(int ch)
返回最后出现的字符ch的索引
lastIndexOf(String str)
返回最后出现的字符串str的索引
class StringTest{ public static void main(String[] args) { String str="ABCabcABCabcJKLabcP"; System.out.println("str.indexOf('c')" + str.indexOf('c')); System.out.println("str.indexOf(\"BC\")" + str.indexOf("BC")); System.out.println("str.lastIndexOf('c')" + str.lastIndexOf('c')); System.out.println("str.lastIndexOf(\"BC\")" + str.lastIndexOf("BC")); }}
3 提取字符串:
方法
说明
charAt(int index)
从指定非负索引提取字符。返回字符
substring(int index)
从指定索引提取字符串至结尾。返回字符串
substring(int begin, int end)
返回从指定的开始和结束索引提取的字符串
concat(String str)
将参数字符串连接。返回新的字符串
replace(char old, char new)
使用新的字符替换字符串中所有的旧字符
trim()
将字符串头尾的空格取出后返回副本
class StringTest{ public static void main(String[] args) { String str=" ABCabcABCabcJKLabcP "; //前后各有2个空格 System.out.println("字符串:"+str+"\n长度:str.length() ="+str.length()); //长度 System.out.println("索引为5的字符:str.charAt(5)= " + str.charAt(5)); System.out.println("索引为5开始的字符串:str.substring(5)= " + str.substring(5)); System.out.println("索引为5开始至结尾的字符串长度:"+str.substring(5).length()); System.out.println("索引为5-11上的字符串:str.substring(5,12) = " + str.substring(5, 12)); System.out.println("在字符串结尾添加Hello:str.concat(\"Hello\") = " + str.concat(" Hello")); System.out.println("将字符串中的A替换为Y:str.replace('A','Y') = " + str.replace('A', 'Y')); System.out.println("去除字符串首尾的空格:str.trim() =" + str.trim()); }}
4. 字符串转换:
方法
说明
toUpperCase()
将所有字符转为大写
toLowerCase()
将所有字符转为小写
copyValueOf(char[] chars)
将字符数组转为字符串
toCharArray()
将字符串转为字符数组
valueOf()
转数字为字符串
class StringTest{ public static void main(String[] args) { String str1="ABCabcABCabcJKLabc"; System.out.println("\n转大写:"+str1.toUpperCase()); System.out.println("转小写:"+str1.toLowerCase()); char chars[]={'a', 'b', 'c', 'd', 'e', 'f'}; System.out.println("\n构造方法从字符数组中索引1开始提取4个字符新建字符串:"+new String(chars, 1, 4)); System.out.println("静态方法转字符数组为字符串:"+String.copyValueOf(chars)); System.out.println("静态方法从字符数组中索引1开始提取4个字符转为字符串:"+String.copyValueOf(chars, 1, 4)); System.out.println("\n字符串转为数组:"+str1.toCharArray()); System.out.println("\n转数字为字符串:"+String.valueOf(123)); System.out.println("转数字为字符串:"+String.valueOf(123.456)); }}
5. 字符串分割:
方法
说明
split(String str)
以str为标记分割字符串为数组
class StringTest{ public static void main(String[] args) { String str1="ABCabcABCabcJKLabcD"; String[] str2=str1.split("c"); for(int i=0; i<str2.length; i++) { System.out.println(str2[i]); } }}
二. StringBuffer:
可修改的字符串类,动态的字符数组。
新建
构造方法
说明
StringBuffer ( )
默认保留16个字符的空间
StringBuffer ( int length )
同时设置缓存器大小
StringBuffer ( String value )
接收参数
方法
说明
增
insert ( int index, String str )
在指定索引插入字符串
append (String str )
在末尾添加字符串
删
delete ( int start , int end )
删除指定区间的字符,end位保留
deleteCharAt ( int index )
指定位置删除字符
改
replace (int start, int end, String str)
修改指定区间字符为str
setCharAt (int index, char ch )
修改指定位置字符
reverse ( )
反转整条字符串
查
charAt ( int index )
指定位置获取字符
indexOf ( String str )
查询str首次出现的位置
lastIndexOf ( String str )
str最后出现位置
substring ( int start, int end )
截取区间为新的字符串
length ( )
字符串长度
class StrBufTest{ public static void main(String[] args) { StringBuffer sb1=new StringBuffer("StringBuffer1"); StringBuffer sb2=new StringBuffer("StringBuffer2"); System.out.println("sb1="+sb1+"\nsb2="+sb2); sb1.insert(6," Hello "); sb1.append("world"); System.out.println("sb1="+sb1); sb2.delete(6,8); sb2.deleteCharAt(0); System.out.println("sb2="+sb2); sb1.replace(0,6, "It's a"); sb1.setCharAt(14,'b'); System.out.println("sb1="+sb1); }}
JDK1.5中提供了一个新的动态字符串类StringBuilder,与 StringBuffer 兼容,但不保证同步。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
- Java上路11-字符串
- 新手上路,java不同进制转换的字符串
- Java新手上路大全
- Java新手上路大全
- 上路------Hello java
- Java新手上路大全
- Java新手上路大全
- JAVA上路了.
- Java上路05-数组
- Java上路09-多线程
- Java上路12-集合
- Java上路13-泛型
- Java上路20-GUI
- java线程上路
- Java新手上路经验1
- java Properties 类新手上路
- Java上路01-环境搭建
- Java上路02-Hello World
- 私家银行
- Fibnacci序数(1)
- CentOS硬盘安装
- Java对象的XML序列化
- mysql sql语句性能分析
- Java上路11-字符串
- 自定义contentprovider
- 应用BigDecimal类KEEP住数据的精度
- 检测Android是否连接WIFI
- SPI通信原理及通信协议
- 数据结构学习(一)——顺序表的操作
- 汉诺塔
- POJ 图论
- HOJ 2100 Beat the Spread!