博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day10 API
阅读量:5278 次
发布时间:2019-06-14

本文共 9975 字,大约阅读时间需要 33 分钟。

String类

String是不可变类:值一旦确定了,就不会更改。

public static void main(String[] args) {        String s1 = "hello";//到常量池里找对象        String s2 = new String("hello");        s1 = "Tom";        s1 = "hello"+"Tom";        String s3 = "hello";        String s4 = new String("hello");        // ==判断是否为同一对象,判断内存地址        System.out.println(s1==s2);//false        System.out.println(s2==s4);//false        System.out.println(s1==s3);//false        s1 = "hello";        System.out.println(s1==s3);//true    }

 

 

String常用的方法

concat

字符串连接,返回连接后的串

1 String s1 = "hello";2 //concat 字符串连接,返回连接后的串3 s1 = s1.concat("tom");4 System.out.println(s1);//hellotom

length

字符串长度

System.out.println(s1.length());

equals

比较字符序列是否相同,区分大小写

String s2 = "hellotom";System.out.println(s1.equals(s2));

equalsIgnoreCase

比较字符序列是否相同,不区分大小写

String s3 = "HEllotom";System.out.println(s1.equalsIgnoreCase(s3));

toUpperCase

大写兼容,全部转为大写

System.out.println(s1.toUpperCase());

toLowerCase

小写兼容,全部转为小写

System.out.println(s1.toLowerCase());

indexOf

首次出现的位置索引,没有返回-1

s1 = "hellohellotom";System.out.println(s1.indexOf("hello"));System.out.println(s1.indexOf("abc"));

lastIndexOf

最后一次出现的位置索引

System.out.println(s1.lastIndexOf("hello"));

charAt

取出某一个位置的字符

System.out.println(s1.charAt(0));//h

substring

取字符串

//取子串(起始位置)取到最后System.out.println(s1.substring(10));//tom//[起始位置,终止位置)    不包括终止位置System.out.println(s1.substring(10, 13));//tom

trim

去除字符串的首尾空格

s1 = "   h  e  l  l  o  t  o  m   ";System.out.println(s1);//   h  e  l  l  o  t  o  m   System.out.println(s1.trim());//h  e  l  l  o  t  o  m

replace

字符串替换(旧串,新串)用新串替换旧串

s1 = "hellotom";System.out.println(s1.replace(s1, "你好"));//你好//去掉是s1串中的所有空格s1 = "  h e     l l    o t  om    ";System.out.println(s1.replace(" ", ""));//hellotom

endsWith

判断是否以某个字符串结尾,是true,否false

s1 = "hello.java";System.out.println(s1.endsWith("java"));//true

startsWith

判断是否以某个字符串开头,是true,否false

System.out.println(s1.startsWith("he"));//true

compareTo

字符串比较大小

s1 = "abc";//unicode s1在参数之前,返回负数,s1在参数之后,返回正数,相对返回0System.out.println(s1.compareTo("cc"));//-2System.out.println(s1.compareTo("aa"));//1System.out.println(s1.compareTo("abc"));//0

contains

是否包含指定参数的字符串,包含true,不包含false

System.out.println(s1.contains("bc"));//true

toCharArray()

把字符串转换成字符数组

char[] c = s1.toCharArray();//'a','b','c'for(char cc:c) {    System.out.print("字符:"+cc);//字符:a字符:b字符:c}

split

用某个字符串把原始字符串分割为一个字符串数组

s1 = "aa bb cc dd ee";String[] strs = s1.split(" ");//"aa","bb","cc","dd","ee"for(String ss : strs) {    System.out.print("元素:"+ss);//元素:aa元素:bb元素:cc元素:dd元素:ee}
1 public static void main(String[] args) { 2         // String  常用的方法 3         String s1 = "hello"; 4 /*        System.out.println(s1);//hello 5         s1 = s1 + "tom";// "hellotom" 6 */         7         //连接字符串,返回连接后的串 8         s1 = s1.concat("tom");//"hellotom" 9         System.out.println(s1);//"hellotom"10         //字符串长(字符序列的个数)11         System.out.println(s1.length());//812         //equals比较字符序列是否相同 相同 true 区分大小写13         String s2 = "hellotoM";14         System.out.println(s1.equals(s2));//fasle15         //忽略大小写16         System.out.println(s1.equalsIgnoreCase(s2));17         //大小写兼容18         //大写19         System.out.println(s1.toUpperCase());20         //小写21         System.out.println(s1.toLowerCase());22         // zhangsan@163.com23         //    0123------------------------------------24         s1 = "hellohellotom";25         //位置索引26         //首次出现的位置索引  ,没有返回 -127         System.out.println(s1.indexOf("hello"));// 028         System.out.println(s1.indexOf("@"));//-129         //最后一次出现的位置索引30         System.out.println(s1.lastIndexOf("hello"));//531         //取出  某一个 位置 的字符32         System.out.println(s1.charAt(0));//'h'33         //取 子串  (起始位置)  取到最后34         System.out.println(s1.substring(10));//"tom"35         //[起始位置,终止位置)  不包括终止位置  36         System.out.println(s1.substring(10, 13));37         //----------------------------------------38         s1 = "   h e l l o tom   ";39         //去除字符串 的 首尾 空格40         System.out.println(s1.trim());41         //42         s1 = "hellotom";43         //字符串 替换  (旧串,新串)  用新串 替换 旧串44         System.out.println(s1.replace("hello","你好"));//"hello"->“你好”45         s1 = "   h e     l l    o t  om   ";46         //问题:去掉  s1串 中的 所有空格47         System.out.println(s1.replace(" ", ""));48         //49         s1 = "hello.java";50         //判断 是否 以 某个 字符串 结尾  是  true  51         System.out.println(s1.endsWith("java"));//true52         //判断 是否 以 某个 字符串 开头  是  true 53         System.out.println(s1.startsWith("he"));//true54         //字符串 比较大小55         s1 = "abc";56         //unicode  s1  在 参数之前 ,返回 负数 ,s1 在参数后 ,返回正数,相等 返回057         System.out.println(s1.compareTo("cc"));//-258         System.out.println(s1.compareTo("aa"));//159         System.out.println(s1.compareTo("abc"));//060         //-----------------------------------------61         //是否 包含 指定参数 的字符串 ,包含 true62         System.out.println(s1.contains("ab"));63         //把 字符串 转换成字符数组64         char [] c = s1.toCharArray();// 'a','b','c'65         for(char cc :c) {66             System.out.println("字符:"+cc);67         }68         //69         s1 = "aa bb cc dd ee";70         //用某个 字符串  把原始字符串 分割为  一个 字符串数组71         String [] strs = s1.split(" ");//"aa","bb","cc","dd","ee"72         for(String ss:strs) {73             System.out.println("元素:"+ss);74         }75         76         77         78     }
View Code

StringBuffer类

如果频繁更改字符串的值,不要用String类,效率低,用变长字符串类StringBuffer和StringBuilder类

StringBuffer类常用方法

capacity

返回容量

StringBuffer sf1 = new StringBuffer();//具备16个字符的缓冲区System.out.println(sf1.capacity());//16StringBuffer sf2 = new StringBuffer("hello");System.out.println(sf2.capacity());//21=16+5//直接规定缓冲区大小StringBuffer sf3 = new StringBuffer(100);System.out.println(sf3.capacity());//100

apend

追加字符串

StringBuffer sf = new StringBuffer(50);sf.append("hello");System.out.println(sf);//hellochar[] c = {
'a','b','c'};sf.append(c,1,2);//bcSystem.out.println(sf);//hellobc

trimToSize

缩小容量为我存储的字符的个数大小

System.out.println(sf.capacity());//50sf.trimToSize();System.out.println(sf.capacity());//7

insert

向索引位置插入一个字符串

System.out.println(sf);//hellobcsf.insert(5, "你好");System.out.println(sf);//hello你好bc

setCharAt

修改指定位置的一个字符

sf.setCharAt(5, '您');System.out.println(sf);//hello您好bc

deleteCharAt

删除指定位置索引的一个字符

sf.deleteCharAt(5);System.out.println(sf);//hello好bc

delete

删除指定范围的字符串[起始位置,终止位置),不包括终止位置

sf.delete(5, 8);System.out.println(sf);//hello

chatAt

获取指定索引处的字符

System.out.println(sf.charAt(1));//e

indexOf

首次出现的位置索引,没有返回-1

System.out.println(sf.indexOf("l"));//2

lastIndexOf

最后一次出现的位置索引

System.out.println(sf.lastIndexOf("l"));//3

reverse

反转

System.out.println(sf);//hellosf.reverse();System.out.println(sf);//olleh

String类与StringBuffer类之间的转换

String str = sf.toString();StringBuffer sfr = new StringBuffer(str);
1 public static void main(String[] args) { 2         // StringBuffer  StringBuilder 3         //String 不可变类 4         //如果频繁 更改字符串的值,不要用String效率低,用 变 长字符串类 StringBuffer  StringBuilder 5         //StringBuffer 6         StringBuffer sf1 = new StringBuffer(); 7         //具备 16个字符的缓冲区 8         System.out.println(sf1.capacity());//16 9         StringBuffer sf2 = new StringBuffer("hello");10         //容量 11         System.out.println(sf2.capacity());//2112         sf2.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");13         System.out.println(sf2.capacity());//14         15         StringBuffer sf3 = new StringBuffer(100);16         System.out.println(sf3.capacity());17         18         //----------------StringBuffer--------------------------------19         StringBuffer sf = new StringBuffer(50);20         //容量21         System.out.println(sf.capacity());22         //追加字符串的23         sf.append("hello");24         char[] c = {
'a','b','c'};25 sf.append(c, 1, 2);//bc26 System.out.println(sf);//"hellobc"27 28 System.out.println(sf.capacity());29 //缩小容量为 我 存储的字符的个数大小30 sf.trimToSize();31 System.out.println(sf.capacity());32 System.out.println(sf);//"hellobc"//33 //向 索引 位置 插入一个字符串34 sf.insert(5, "你好");//"hello你好bc"35 System.out.println(sf);36 //修改 指定位置的一个 字符37 sf.setCharAt(5, '您');//"hello您好bc"38 System.out.println(sf);39 //删除 指定 位置索引的 一个 字符40 sf.deleteCharAt(5);//"hello好bc"41 System.out.println(sf);42 //删除 指定 范围 的字符串 【起始位置,终止位置)不包括 终止位置43 sf.delete(5, 8);44 System.out.println(sf);//"hello"45 46 System.out.println(sf.charAt(1));//e47 System.out.println(sf.indexOf("l"));//248 System.out.println(sf.lastIndexOf("l"));//349 50 //------------其它----------------------51 sf.reverse();52 System.out.println(sf);53 String str = sf.toString();//StringBuffer -> String54 //String - > StingBuffer55 StringBuffer sfr = new StringBuffer(str);56 //-----------------------------------------------------57 /*58 * String:定长字符串类,不可变类,表示一个简单的字符串 用 String59 * 但是,如果 字符串的值大量更改频繁更改 ,选择StringBuffer,StringBuilder60 * StringBuffer :线程安全的,数据准确,但速度慢61 * StringBuilder:线程非安全的,多线程环境下数据不准确,但是速度快。62 */63 //--------------------------------------------------64 }
View Code

String、StringBuffer和StringBuilder之间的区别

 

String:定长字符串类,不可变类,表示一个简单的字符串用String,但是,如果字符串的值大量更改频繁,选择StringBuffer或StringBuilder

StringBuffer:线程安全的,数据准确,但速度慢

StringBuilder:线程非安全的,多线程环境下数据不准确,但是速度快

正则表达式

 用某种模式去匹配指定字符串的一种表达方式。

 

语法

定义正则表达式:Pattern.compile(regString,)

表达式的模式:Matcher matcher = p.matcher();

验证:matcher.matches()

public static void main(String[] args) {        //正则验证:邮政编码必须6位        //1.指定正则表达式[0-9]{6}或\\d{6}        Pattern p =Pattern.compile("[0-9]{6}");        //2.指定要验证的数据        Matcher m = p.matcher("123456");        //3.验证        System.out.println(m.matches());//格式验证true    }

拆箱、装箱

JDK提供了对所有的基本数据类型的包装类

作用

1.把基本类型当做对象使用

2.提供了更加丰富的功能。

 

转载于:https://www.cnblogs.com/qingyunzong/p/8253134.html

你可能感兴趣的文章
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>