Java学习笔记-字符串、正则表达式(String,regex)

-----------android培训java培训、java学习型技术博客、期待与您交流!------------ 

String的特性:一旦初始化就不会被改变。描述字符串的类
1)String常用方法:
1.获取:
charAt(int index)//角标对应的字符
indexOf(int ch)//字符所在的角标
lastIndexOf(int ch)
length()
substring(int beginIndex)//获取子串
public class StringTest {
	public static void main(String [] args){
		String s = "abdfdladhjfnv";
		System.out.println(s.charAt(3));
		System.out.println(s.indexOf('f'));
		System.out.println(s.lastIndexOf('f'));
		System.out.println(s.length());
		System.out.println(s.substring(5));
	}
}

运行结果:
f
3
10
13
ladhjfnv
 
2.判断:
contains(CharSequence s)//判断是否包含
endsWith(String suffix)//是否以传入的字符串结尾
startsWith(String prefix)//是否以传入的字符串开始
isEmpty()   JDK1.6//是否为空
equals(Object anObject)//比较字符串内容是否一样
equalsIgnoreCase(String anotherString)//忽略大小比较内容是否一样
public class StringTest {
	public static void main(String [] args){
		String s = "test.java";
		System.out.println(s.contains("ja"));
		System.out.println(s.endsWith("java"));
		System.out.println(s.isEmpty());
	}
}
运行结果:
true
true
false
3.转换:
字符数组转成字符串:String s = new String(arr);通过构造函数转换
copyValueOf(char[] data)   静态方法
valueOf(char c) 静态方法
将字符串转成字符数组
toCharArray()
将字符串转成字节数组
getBytes()//使用默认编码将字符串编码为byte序列。
getBytes(Charset charset)//指定编码集
public class StringTest {
	public static void main(String [] args){
		char [] chs = new char [] {'a','b','c','d'};
		System.out.println(new String(chs));//将字符数组转成字符串。
		System.out.println(String.valueOf(7));//将数字转成字符串
		
	}
}
运行结果:
abcd
7


4.替换:replace(char oldChar, char newChar)

5.切割:String []   split(String regex)

6.大小写转换: toUpperCase()   toLowerCase()

7.去除字符串两端空格:trim()

8.将两个字符串进行自然顺序的比较:
compareTo(String anotherString)
compareToIgnoreCase(String str)

2)StringBuffer:字符串缓冲区,是一个容器,长度可变,可以操作多种数据类型。
1.存储:
append(char c)
insert(int offset, char c) 

2.删除:
delete(int start, int end)
deleteCharAt(int index)

3.获取:
length()
charAt(int index) 
indexOf(String str)
lastIndexOf(String str) 
substring(int start, int end)

4.修改:
replace(int start, int end, String str)
setCharAt(int index, char ch)
reverse()
public class StringTest {
	public static void main(String [] args){
		StringBuffer sb = new StringBuffer();
		sb.append("abc");
		sb.append(7);
		sb.append(3.0d);//添加任意元素
		System.out.println(sb.toString());
		sb.delete(4,sb.length());
		sb.replace(0, 2, "java");//将角标0-2(不包含尾)替换成Java
		System.out.println(sb.toString());
		System.out.println(sb.reverse());//反转字符串
	}
}
运行结果:
abc73.0
javac7
7cavaj
3)StringBuilder(JDK1.5)与StringBuffer功能一样   区别: StringBuffer线程同步,StringBuilder线程不同步。
4)基本数据类型包装类:
byte(Byte) short(Short) int(Integer) long(Long)
booblean(Boolean) float(Float) double(Double) char(Character)

Integer  静态方法
基本数据类型转成字符串:基本数据类型+“”;Integer.toString(34)//将34转成“34”。
字符串转成基本数据类型:int num = Integer.parseInt("123");
toBinaryString(int i)
toHexString(int i)
toOctalString(int i)
其他进制转十进制
parseInt(String s, int radix)  示例:Integer.parseInt("110",2)//二进制转成十进制
IntegerJDK1.5新特性:1.自动装箱、拆箱。2.Integer对象数值在byte范围内时,该数值对象已存在,不会创建新对象。

5)正则表达式:
理解:符合一定规则的表达是。作用:用于专门复杂操作字符串。
特点:用一些特定的符号来表示一些代码的操作。好处:简化书写。弊端:不容易看懂。
1.匹配:matches(String regex)
代码示例:
//匹配 手机号段只有 13xxx 15xxx 18xxxx 
public class MatchesTest { 
	public static void main(String [] args){ 
		String str ="15626677782"; 
		boolean flag = matches(str); 
		if(flag==true) 
			System.out.println("手机号正确"); 
		else 
			System.out.println("手机号错误"); 
	} 
	public static boolean matches(String s){ 
		String regex ="1[358]\\d{9}"; 
		return s.matches(regex); //字符串匹配正则
	} 
}

 2.切割:split(String regex)
代码示例:
import java.util.Arrays; 
public class MatchesTest { 
	public static void main(String [] args){ 
		String str ="abbbcdffeeghs"; 
		System.out.println(Arrays.toString(split(str))); 
	}
	public static String[] split(String s){ 	
		String regex ="(.)\\1+"; //定义切割的规则
		return s.split(regex); //按照规则切割字符串。
	}
}
运行结果:
[a, cd, , ghs]
3.替换:replaceAll(String regex, String replacement)
代码示例:
public class MatchesTest { 
	public static void main(String [] args){ 
		String str ="abbbcdffeeghs"; 
		System.out.println(replaceAll(str)); 
	}
	public static String replaceAll(String s){ 
		return s.replaceAll("(.)\\1+","$1"); //按照定义好的规则替换内容。
	}
}
运行结果:
abcdfeghs
4.获取:
代码示例:
import java.util.regex.Matcher;
import java.util.regex.Pattern; 
public class MatchesTest { 
	public static void main(String [] args){ 
		String str ="ming tian jiu yao fang jia le ,da jia";
		get(str); 
	} 
	public static void get(String s){ 
		String regex = "\\b[a-z]{3}\\b"; 
		Pattern p = Pattern.compile(regex);//将规则封装成对象
		Matcher m = p.matcher(s); //正则对象与要作用的字符串关联,并获取匹配器对象
		while(m.find())
			System.out.println(m.group()); 
	}
}
运行结果:
jiu
yao
jia
jia

5.正则常用字符表现形式:
[abc] ----a、b或c
[a-zA-Z]----a 到 z 或 A 到 Z
\d----数字:[0-9]
\w----单词字符:[a-zA-Z_0-9]
\b----单词边界
X?----X,一次或一次也没有
X*----X,零次或多次
X+----X,一次或多次
X{n} ----X,恰好 n 次
X{n,}----X,至少 n 次
X{n,m}----X,至少 n 次,但是不超过 m 次

-----------android培训java培训、java学习型技术博客、期待与您交流!------------ 

你可能感兴趣的:(string,regex)