黑马程序员-第十一天(String类)

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

一,字符串最大的特点:一旦被初始化就不可以改变。
二,equals():  Object中是比较的两个变量的内存地址值,而在String类中复写了Object中的方法。该方法用于判断字符串是否相同。
三。String s1 = "abc" 和 String s2 = new String("abc")的区别?
s1是有一个对象“abc”。s2是有两个对象。new String()和"abc"
注:当String s3 = "abc"时,s1 == s3是成立的原因如下 :
当在常量池中出现已经存在的常量时,因为常量已经不能被改变所以。就不会在开辟新的空间的,而是直接指向它。
四。对字符串的常见操作。
1.获取:
1.1 字符串中的包含的字符数,也就是字符串的长度。
int length():获取长度
1.2 根据位置获取位置某个字符
char charAt(int index);如果index超出字符串的范围,会抛出StringIndexofBoundsException
1.3根据字符获取字符在字符串中的位置。
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。如果没有找到要找的字符,会返回-1
int indexOf(int ch,int fromIndex):从fromIndex指定位置的开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex):从fromIndex指定位置的开始,获取str在字符串中出现的位置。
反向索引
int lastIndexOf(int ch);
int lastIndexOf(int ch,int fromIndex);
int lastIndexOf(String str);
int lastIndexOf(String str,int fromIndex);
2,判断
2.1 判断字符串是不是以指定的字符串开始:boolean startsWith(String prefix)
2.2 判断字符串是不是以指定的字符串结尾:boolean endsWith(String end); 
2.3 判断字符串是不是有内容:boolean isEmpty(); JDK1.6版本开始  就是判断是length()的值是不是为0
2.4  判断字符串是不是包含某一个子串:
boolean contains(CharSequence str):其中CharSequence是一个字符序列接口已知子类String ,StringBuffer等。父类引用指向子类对象。
编译时看父类,运行时看子类。

特殊之处:indexOf(String str):可以索引str第一次出现位置,如果返回-1表示str不在字符串存在,所以,也可以用于判断是否包含指定的子串。而且该方法即可以判断,又可以获取位置。
2.5 判断字符串内容是否相同,复写了Object类中的equals方法
boolean equals(Object str)
2.6 判断字符串内容是否相同,并忽略大小写。
boolean equalsIgnorecCase();

3.转换
3.1将字符数组转换成字符串
构造函数
String(char[] value) 将字符数组转换成字符串。
String(char[] value ,int offset,int count)将字符数组中的一部分转换成字符串。
静态方法
static String copyValueOf(char[] value)将字符数组转换成字符串。
static String copyValueOf(char[] value,int offset,int count)将字符数组中指定的部分转换成字符串。
static String valueOf(char[] value)将字符数组转换成字符串。
3.2将字符串转换成字符数组
char[] toCharArray():将字符串变成字符数组。

3.3将字节数组转换成字符串(字符串和字节数组在转换过程中,是可以指定编码表的)
构造函数
String(byte[] bytes)
String(byte[] bytes,int offset,int count)将字节数组中指定的一部分转换成字符串。
String(byte[] bytes,Charset charset);通过指定的charset解码指定的byte数组,构造一个新的string

3.4将字符串转换成字节数组。
byte[] getBytes():将字符串转换成字节数组。
3.5copyValueOf和valueOf方法的区别?
valueOf可以将基本数据类型转换成字符串。
4,替换

4.1替换字符
String replace(char oldChar,char newChar)将newChar替换oldChar并返回替换后新的字符串(替换所有与oldChar相同的字符)。
如果要替换的字符不存在的,返回的还是原来的字符串。如:
String s1 = "hellow";
String s2 = s1.replace('l','a');
打印s2的结果:为 heaaow   打印s1为hellow原因:字符串一但被初始化就不会被改变。replace(char,char)方法
会返回一个新一个字符串。
4.2,替换字符串
String replace(CharSequence oldString, CharSequence newString):替换字符串。字符串是CharSequence接口类的一个已知子类。

按照指定的规则(正则表达式)进行替换:
String replaceAll(String regex(正则表达式),String replacement)使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串
String replaceFirst(String regex,String replacement)使用给定的replacement替换此字符串所有匹配给定的正则表达式的第一个子字符串
5,切割
String[] split(String regex):根据字符格式进行切割。
如:String str ="heabcde",String[] arr = str.split("he")此时会有两个字串,一个空串,一个"abcde"字符串。
6,获取子串(当角标找不到时会发生角标越界异常)
String substring(int beginIndex);从指定的位置到结尾都有。注:此方法是调用substring(int beginIndex,string.length())
String substring(int beginIndex,int endIndex);包括头不包括尾。
7.转换
7.1将字符串转成大写或小写
转成大写:
String toUpperCase();
转成小写:
String toLowerCase();
7.2将字符串两端的多个空格进行去除(觉应用于:用户名,密码的输入)
String trim();
7.3对两个字符串进行自然顺序的比较
int compareTo(String string)
当返回的整数大于0时说明this所指的字符串大于参数中的字符串(根据的是Ascll码表进行比较),等于则两个
字符串相等,小于0则this所指的字符串小于参数中的字符串。

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值