【JavaSE笔记】Java常用类及其方法(二)_String
来源:互联网 发布:淘宝官方优惠券app 编辑:程序博客网 时间:2024/05/01 06:15
本期知识点:
String类的常用方法
String s2 = "Hello";创建了几个对象?
s1创建了两个对象。
s2创建了一个对象,直接指向常量池中的。
String类的常用方法
类 String
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
字符串的特点:
a. 字符串一旦被赋值,其值不能再改变。例:
b. 方法区:有一个内存区域:字符串常量池。如果我们创建一个字符串对象,给对象赋值,这个值会在常量池进行寻找,有则返回;没有那么就在常量池开辟空间。
public class StringDemo {public static void main(String[] args) {//创建字符串对象String s = "hello" ;s += "world" ;System.out.println("s:"+s);//hellowrld}}
(面试题):
String s1 = new String("Hello");创建了几个对象?String s2 = "Hello";创建了几个对象?
s1创建了两个对象。
s2创建了一个对象,直接指向常量池中的。
1. 常用构造方法
a. public String() 无参构造例:
b. public String(byte[] bytes) 将字节数组转换成字符串
c. public String(byte[] bytes,int offset,int length) 将字节数组的一部分转换成字符串
d. public String(char[] value) 将字符数组转换成字符串
e. public String(char[] value,int offset,int count) 将字符数组的一部分转换成字符串
f. public String(String original) 将一个常量转换字符串:String 是不可变的,所以无需使用此构造方法
public class Demo01 {public static void main(String[] args){//public String():无参构造String s = new String();System.out.println(s);//空字符序列System.out.println(s.length());//0;System.out.println("--------------------");//public String(byte[] bytes):将字节数组转换成字符串//构造一个字节数组,静态初始化;byte[] a = {97,98,99,100,101};String s2 = new String(a);System.out.println(s2);//abcde;System.out.println(s2.length());//5;System.out.println("--------------------");//public String(byte[] bytes,int offset,int length):将字节数组的一部分转换成字符串String s3 = new String(a,0,3);System.out.println(s3);//abc;System.out.println(s3.length());//3System.out.println("--------------------");//public String(char[] value):将字符数组转换成字符串char[] b = {'L','I','N','K','I','N',' ','P','A','R','K'};String s4 = new String(b);System.out.println(s4);//LINKIN PARKSystem.out.println(s4.length());//11System.out.println("--------------------");//public String(char[] value,int offset,int count):将字符数组的一部分转换成字符串String s5 = new String(b,5,6);System.out.println(s5);//N PARKSystem.out.println(s5.length());//6System.out.println("--------------------");//public String(String original):将一个常量转换字符串:String 是不可变的,所以无需使用此构造方法 String s6 = new String("LinKin Park"); System.out.println(s6); System.out.println(s6.length());}}
2. 常用的判断功能
a.boolean equals(Object obj) 将此字符串与指定的对象比较 。
b. boolean equalsIgnoreCase(String str) 将此字符串和另一个字符串进行比较,忽略大小写。
c. boolean contains(String str) 判断此字符串中是否包含str这个子字符串。
d. boolean startsWith(String str) 判断是否以str子字符串开头。
e. boolean endsWith(String str) 判断是否已str字符串结尾。
f. boolean isEmpty() 判断字符串是否为空。
例:注意:String s = ''''; //表示s字符串是空字符串String s = null;//空对象,连对象都没有.当字符串为null时,会出现NullPointerException:空指针异常,需要加入非空判断。
public class String类的判断功能 {public static void main(String[] args) {//定义三个字符串;String a = "linkinPark";String b = "linkinPark";String c = "LinKinPark";//boolean equals(Object obj):将此字符串与指定的对象比较 。System.out.println(a.equals(b));//trueSystem.out.println(a.equals(c));//falseSystem.out.println("—————————");//boolean equalsIgnoreCase(String str):将此字符串和另一个字符串进行比较,忽略大小写。System.out.println(a.equalsIgnoreCase(b));//trueSystem.out.println(a.equalsIgnoreCase(c));//trueSystem.out.println("—————————");//boolean contains(String str):判断此字符串中是否包含str这个子字符串。System.out.println(a.contains("Park"));//trueSystem.out.println(a.contains("Lin"));//falseSystem.out.println("—————————");//boolean startsWith(String str):判断是否以str子字符串开头。System.out.println(a.startsWith("lin"));//trueSystem.out.println(a.startsWith("Lin"));//falseSystem.out.println("—————————");//boolean endsWith(String str):判断是否已str字符串结尾。System.out.println(a.endsWith("Park"));//trueSystem.out.println(a.endsWith("park"));//falseSystem.out.println("—————————");//boolean isEmpty():判断字符串是否为空。String e = " ";System.out.println(e.isEmpty());//falseString f = null;//java.lang.NullPointerException//加入非空判断if(f!=null){System.out.println(f.isEmpty());}}}
3. 常用的字符串转换功能
a. byte[] getBytes() 将一个字符串转换字节数组。b. char[] toCharArray() 将一个字符串转换成字符数组。★c. static String valueOf(char[] chs) 将字符数组转换成字符串。d. static String valueOf(int i) 将int类型的数据转换字符串。
注意:String类中的valueOf方法可以将任何数据类型转换成String。
例:e. String toLowerCase() 将字符串转换成小写。f. String toUpperCase() 将字符串转换成大写。g. String concat(String str) 字符串拼接功能。
public class String类的转换功能 {public static void main(String[] args) {//定义一个字符串String a = "LinKinPark";//byte[] getBytes():将一个字符串转换字节数组。byte[] s1 = a.getBytes();for (int i = 0; i < s1.length; i++) {System.out.print(s1[i]+" ");//76 105 110 75 105 110 80 97 114 107 }System.out.println();System.out.println("—————————");//char[] toCharArray():(重点方法):将一个字符串转换成字符数组。(重点)char [] s2 = a.toCharArray();for (int i = 0; i < s2.length; i++) {System.out.print(s2[i]+" ");//L i n K i n P a r k }System.out.println();System.out.println("—————————");// static String valueOf(char[] chs):将字符数组转换成字符串。String b = String.valueOf(s2);System.out.println(b);//LinKinParkSystem.out.println("—————————");// tatic String valueOf(int i):将int类型的数据转换字符串。//注意:String类中的valueOf方法可以将任何数据类型转换成String。int x = 101;String c = String.valueOf(x);System.out.println(c);//101System.out.println("—————————");// String toLowerCase():将字符串转换成小写。// String toUpperCase():将字符串转换成大写。System.out.println("小写:"+a.toLowerCase());//小写:linkinparkSystem.out.println("大写:"+a.toUpperCase());//大写:LINKINPARKSystem.out.println("—————————");//String concat(String str):字符串拼接功能。String d = "Imagine";String e = "Dragons";String f = d.concat(e);System.out.println(f);//ImagineDragons}}
4. 常用的获取功能
a. int length() 获取字符串的长度。
b. char charAt(int index) 返回指定索引处的字符★
c. int indexOf(int ch) 返回回指定字符在此字符串中第一次出现处的索引★
注意:为什么这里的参数是int类型,而不是char类型
'a'和97 都代表'a'
d. int indexOf(String str) 返回指定字符串在此字符串第一次出现的索引例:
e. int indexOf(int ch,int fromIndex) 返回此字符中从指定位置开始后第一次出现的索引
f. int indexOf(String str,int fromIndex) 返回此字符串中从指定位置开始后第一次出现的索引★
g. String substring(int beginIndex) 截取:从指定位置开始截取,默认截取到末尾:包含start这个索引
h. String substring(int beginIndex,int endIndex) 从指定位置开始截取到指定位置结束:包左(start这个索引),不包含end这个位置.
public class String类的获取功能 {public static void main(String[] args) {//定义一个字符串String a = "LinkPark";//int length():获取字符串的长度。System.out.println(a.length());//8System.out.println("—————————");//char charAt(int index):返回指定索引处的字符!(重点)★System.out.println(a.charAt(5));//aSystem.out.println("—————————");//int indexOf(int ch):返回回指定字符在此字符串中第一次出现处的索引(重点)★//注意:为什么这里的参数是int类型,而不是char类型// 'a'和97 都代表'a'System.out.println(a.indexOf('P'));//4System.out.println(a.indexOf('k'));//3System.out.println("—————————");// int indexOf(String str):返回指定字符串在此字符串第一次出现的索引!System.out.println(a.indexOf("in"));//1System.out.println(a.indexOf("ar"));//5System.out.println("—————————");//int indexOf(int ch,int fromIndex):返回此字符中从指定位置开始后第一次出现的索引System.out.println(a.indexOf('k', 5));//7System.out.println("—————————");//int indexOf(String str,int fromIndex):返回此字符串中从指定位置开始后第一次出现的索引★System.out.println(a.indexOf("ar", 4));//5System.out.println("—————————");// String substring(int beginIndex):截取:从指定位置开始截取,默认截取到末尾:包含start这个索引System.out.println(a.substring(4));//ParkSystem.out.println("—————————");// String substring(int beginIndex,int endIndex):从指定位置开始截取到指定位置结束:包左(start这个索引),不包含end这个位置.System.out.println(a.substring(2, 6));//nkPa}}
5. String类其他功能
a. 替换功能:
String replace(char old,char new):将老的字符替换成一个新的字符。String replace(String old,String new) :替换字符串。
b. 去除字符串两空格:
String trim()
c. 按字典的顺序比较两个字符串。
例:String comparaTo(String str)
public class String类的其他功能_替换和去除空格 {public static void main(String[] args) {//定义一个字符串String a = "LinkinPark";//String replace(char old,char new):将老的字符替换成一个新的字符。String b = a.replace('k', 'W');System.out.println(b);//LinWinParWSystem.out.println("—————————");//String replace(String old,String new):替换字符串。String c = a.replaceAll("Linkin", "NewYork");System.out.println(c);//NewYorkParkSystem.out.println("—————————");//去除字符串两空格:String trim() String d = " -LinkinPark- ";System.out.println(d);// -LinkinPark- d=d.trim();System.out.println(d);//-LinkinPark-}}
public class String类的其他功能_按字典顺序 {public static void main(String[] args) {//定义字符串String a = "HelloWorld";String b = "HelloWorld";String c = "abc";System.out.println(a.compareTo(b));//0System.out.println(a.compareTo(c));//-25System.out.println("—————————");String d = "Hello";String e = "Hel";System.out.println(d.compareTo(e));//2/* 源码public int compareTo(String anotherString) {int len1 = value.length;//this.value.length-->d.toCharArray().length = 5; int len2 = anotherString.value.length;//this.value.length-->e.toCharArray().length = 3; int lim = Math.min(len1, len2);// min = 3; char v1[] = value; //d字符串转换成字符数组:['H','e','l','l','o']; char v2[] = anotherString.value; //e字符串转换成字符数组:['H','e','l']; int k = 0; while (k < lim) { char c1 = v1[k]; char c2 = v2[k]; if (c1 != c2) { return c1 - c2; } k++; } return len1 - len2;}*/}}
阅读全文
1 0
- 【JavaSE笔记】Java常用类及其方法(二)_String
- 【JavaSE笔记】Java常用类及其方法(一)_Object
- 【JavaSE笔记】Java常用类及其方法(三)_StringBuffer
- 【JavaSE笔记】Java常用类及其方法(四)_Integer
- 【JavaSE笔记】Java常用类及其方法(五)_Character
- 【JavaSE笔记】Java常用类及其方法(六)_BigDecimal
- 【JavaSE笔记】Java常用类及其方法(七)_Date
- 【JavaSE笔记】Java常用类及其方法(八)_System
- 【JavaSE笔记】Java常用类及其方法(九)_Pattern
- 【JavaSE笔记】Java常用类及其方法(十)_Math
- 【JavaSE学习笔记】常用类介绍02_String,StringBuffer,Integer
- Java常用类及其方法(二)String
- 01_String类常用方法(1)(2)
- Java基础_常用类_String
- java_常用类_String
- JAVASE学习笔记:第十章 SWing常用控件类(二)
- Java基础回顾_常用类_String常用1
- Java基础回顾_常用类_String常用2
- 字符串逆序
- Pills (卡特蘭數)
- 网站静态化的实现以及纯伪静态优缺点
- 最优乘车(travel.cpp)
- maven学习总结
- 【JavaSE笔记】Java常用类及其方法(二)_String
- PAT(Basic Level)_1006_换个格式输出整数
- 【OpenPose-Windows】error2 win10-OpenPose-pose+hand/face中断问题
- 简单十步让你全面理解SQL
- 这是我第一次在CSDN上发表博客,新的一天不妨跟自己说一声:要好好的!
- HDU-4918 Query on the subtree(树分治+树状数组)
- 降薪求职对于应届毕业生来说是个选择
- 网页静态化和网页伪静态化之间的区别与选择
- PAT(Basic Level)_1007_素数对猜想