黑马程序员_String和正则表达式方法小结
来源:互联网 发布:apktool mac 编辑:程序博客网 时间:2024/05/18 00:07
--------------------------- android培训、java培训、期待与您交流!---------------------------
1 String的特点:
字符串是一个特殊的对象。
字符串一旦初始化就不可以被改变。
例子:String str = “abc”;(在内存中这是一个对象)
String str1 = new String(“abc”); (在内存中这是两个对象)
字符串常见方法:
1) 获取:
int length():获取长度。
char charAt(int index):根据位置获取位置上某个字符。
int indexOf(char ch):返回的是ch在字符串中第一次出现的位置。
int indexOf(char ch, int fromIndex) :从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置。
int indexOf(String str, int fromIndex) :从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastIndexOf(char ch) :返回的是ch在字符串中右边第一次出现的位置。
String substring(begin):获取字符串中的一部分。从begin开始到结束。
String substring(begin,end);获取字符串中的一部分。从begin开始到到end-1结束。(包含头不包含尾)
2) 判断:
boolean contains(str):字符串中是否包含某一个子串。
特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。所以,也可以用于对指定判断是否包含。
if(str.indexOf("aa")!=-1)而且该方法即可以判断,有可以获取出现的位置。
boolean isEmpty(): 字符中是否有内容。原理就是判断长度是否为0.
boolean startsWith(str):字符串是否是以指定内容开头。
boolean endsWith(str): 字符串是否是以指定内容结尾。
boolean equals(str):判断字符串内容是否相同。复写了Object类中的equals方法。
boolean equalsIgnoreCase():判断内容是否相同,并忽略大小写。
3)转换:
String(char[]):构造函数,将字符数组转成字符串。
String(char[],offset,count):将字符数组中的一部分转成字符串。
static String copyValueOf(char[]):将字符数组转成字符串。
static String copyValueOf(char[] data, int offset, int count):将字符数组中的一部分转成字符串。
static String valueOf(char[]):将字符数组和基本数据类型转成字符串。
char[] toCharArray(): 将字符串转成字符数组。
String(byte[]):将字节数组转成字符串。
String(byte[],offset,count):将字节数组中的一部分转成字符串。
byte[] getBytes():将字符串转成字节数组。
static String valueOf(int): 将基本数据类型转成字符串。
static String valueOf(double):将基本数据类型转成字符串。
4)替换:
String replace(oldchar,newchar);将字符串中oldchar替换成newchar。
5)切割:
String[] split(regex);将字符串按照regex规则切割。
6)转换:
将字符串转成大写或则小写。
String toUpperCase();将字符串转成大写。
String toLowerCase();将字符串转成小写。
String trim(): 将字符串两端的多个空格去除。
int compareTo(string):对两个字符串进行自然顺序的比较。
2 StringBuilder
特点:
StringBuilder是一个容器,可变长度的,用于存放String。
常用方法:
1)存储:
StringBuilder append():将指定数据作为参数添加到已有数据结尾处。
StringBuilder insert(index,数据):可以将数据插入到指定index位置。
2)删除:
StringBuilder delete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuilder deleteCharAt(index):删除指定位置的字符。
3)获取:(同String的获取方法)
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
4)替换:
StringBuilder replace(start,end,string):将start到end-1角标位的字符替换成String。
void setCharAt(int index, char ch):将index角标位的字符替换成ch。
StringBuilder reverse():将StringBuffer反转。
(注意:StringBuffer是线程同步。StringBuilder是线程不同步。建议使用StringBuilder)
3 基本数据类型对象包装类
基本数据类型
byte
short
int
long
boolean
float
double
char
对象包装类
Byte
Short
Integer
Long
Boolean
Float
Double
Character
常见作用:
用于基本数据类型和字符串类型之间做转换。
基本数据类型+""
基本数据类型.toString(基本数据类型值); (如: Integer.toString(34);//将34整数变成"34";)
常用方法:
xxx a = Xxx.parseXxx(String):字符串转成基本数据类型。
例如:
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
4 Integer
基本数据类型对象包装类新特性 :
Integer x = new Integer(4);可以直接写成
Integer x = 4;//自动装箱。
x = x + 5;// 自动拆箱。通过intValue方法。
当Integer对象的数值在byte(-128~127)范围内,对于新特性,如果该数值已经存在,则不会在开辟新的空间。
需要注意:
在使用时,Integer x = null;上面的代码就会出现NullPointerException。
Integer的常用方法:
static String toBinaryString(int i):十进制i转成二进制。
static String toHexString(int i):十进制i转成十六进制。
static String toOctalString(int i):十进制i转成八进制。
static int parseInt(string,radix);将String数字的radix进制转换成十进制。
Integer i = new Integer("123");将String变成Integer。
int num = i.intValue();//将Integer变成int。
5 String的正则表达式
正则表达式:符合一定规则的表达式。
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。
好处是可以简化对字符串的复杂操作。弊端是符号定义越多,正则越长,阅读性越差。
关键字:
regex:定义正则表达式的规则,如果regex中有定义组,可以在第二参数中通过$符号获取正则表达式中的已有的组。
boolean matches:用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。
String[] split();按照规则对字符串进行切割。
String replaceAll(regex,str);按照规则对字符串进行替换。
[^abc] 任何字符,除了 a、b 或 c 。
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,出现n~m次。(包含n和m)。
例子:
String regex = "[1-9]\\d{4,14}";表示第一位是1~9,第二位是0~9并且要出现4~14次。(//d,在正则表达式中//表示/)
str.split("\\.");表示将str按照"."来进行切割。因为"."在正则表达式中有特殊意义,所以需要转义一下,写成"\\."。
组:
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
1 ((A)(B(C)))
2 \A
3 (B(C))
4 (C)
用法:
规则封装成一个组,用()完成。组的出现都有编号。从1开始。 想要使用已有的组可以通过 \n(n就是组的编号)的形式来获取。
$n表示获取前一个编号为n的组。
例子:
str.split("(.)\\1+");将str按照叠词完成切割
str.replaceAll("(.)\\1+","$1");将重叠的字符替换成单个字母。
练习:(获取字符串中3个字母的单词。)
import java.util.regex.*;
class RegexDemo
{
public static void main(String[] args)
{
String str = "ming tian jiu yao fang jia le ,da jia。";
getDemo(str);
}
public static void getDemo(String str)
{
System.out.println(str);
String reg = "\\b[a-z]{3}\\b";//定义单词为3个字母的规则,b表示单词边界。
//将规则封装成对象。
Pattern p = Pattern.compile(reg);
//让正则对象和要作用的字符串相关联。获取匹配器对象。
Matcher m = p.matcher(str);
while(m.find())//将规则作用到字符串上,并进行符合规则的子串查找。复合规则就为T,
{
System.out.println(m.group());//用于获取匹配后结果。
System.out.println(m.start()+"...."+m.end());//返回匹配后单词的角标
}
}
}
--------------------------- android培训、java培训、期待与您交流!---------------------------
详细请查看:http://edu.csdn.net/heima/
- 黑马程序员_String和正则表达式方法小结
- 黑马程序员---正则表达式小结
- 黑马程序员_String和StringBuffer
- 黑马程序员_String类的方法和使用
- 黑马程序员_String类以及equals和==方法
- 黑马程序员_12 正则表达式小结
- 黑马程序员_String类和StringBuffer
- 黑马程序员_String和StringBuffer总结
- 黑马程序员_String类和StringBuffer类
- 黑马程序员_string类和StringBuffer类
- 黑马程序员_String对象
- 黑马程序员_String类
- 黑马程序员_String
- 黑马程序员_String类
- 黑马程序员_String
- 黑马程序员_String类
- 黑马程序员_String
- 黑马程序员_String
- 黑马程序员_集合
- 机器学习阶段总结一
- WPA WPA2 区别
- {{PHP}}in_array注意细节
- mouseover mouseout 事件中的target 对象 relatedTarget 对象
- 黑马程序员_String和正则表达式方法小结
- 黑马程序员_IO学习总结
- poj 2826 An Easy Problem?!(线段直线相关应用)
- 黑马程序员_基础加强path1
- 在VC环境里怎么获取程序的执行时间
- 黑马程序员_基础加强path2
- 2012 Multi-University Training Contest 5:Xiao Ming's Hope
- 黑马程序员_基础加强path3
- BST (P2309)