package cn.hncu;
public class StringDemo {
public static void main(String[] args) {
//demo1();
//demo2();
//demo3();
demo4();
}
public static void demo4(){
//substring
String str ="123abcrei3223";
str.substring(3, 5);
System.out.println(str);//123abcrei3223
String str2 = str.substring(3, 5);
System.out.println(str2);//ab
//split
//String user="hncu,1234,33456";//代表:用户名,密码,验证码
//String infos[]=user.split(","); //regex ---regulation expression 正则表达式
//String user="hncu 1234 33456,yuu";//代表:用户名,密码,验证码
//String infos[]=user.split(" +|,"); //regex ---regular expression 正则表达式
//String user="hncu.1234,33456 uu";//代表:用户名,密码,验证码
//String infos[]=user.split("\\.|,| "); //第一个斜杠是java的转义,第二个斜杠是正则表达式的转义
String user="hncu|1234|33456|uu";//代表:用户名,密码,验证码
//String infos[]=user.split("\\|"); //可以采用转义来处理
user = user.replace("|", "#@%$");//也可以采用替换,以避开原信息串当中的特殊字符
String infos[]=user.split("#@%\\$");
for(String info:infos){
System.out.println(info);
}
String userName=" HNcU ";//"Hncu";//HNCU, hncu " hncu "
//equalsIgnoreCase( ) 和 compareToIgnoreCase( )
//toUpperCase( )、toLowerCase( )
//trim();
//能够把上面所有输入都看成是合法的“后台验证”
if(userName!=null && userName.trim().toLowerCase().equals("hncu")){
System.out.println("OKOK...");
}
}
public static void demo3(){
//1、字符串比较大小
String s1 = "1234中国";//49
String s2="hncuJava";//97+'h'-'a'
//System.out.println(s1>s2);//ERROR:String无法用“>”来比大小
System.out.println( s1.compareTo(s2) );
//2、子串位置查找
String s3 ="dssd2332jjdsk";
String s4 ="32j";
System.out.println(s3.indexOf(s4));
//3、查找姓名中带“飞”字的人,查找姓“张”的人。
String names[]={"张飞","李四","黄飞鸿","张三","岳飞","黄飞虎"};
for(String nm: names){
if(nm.indexOf("飞")>=0){
System.out.println(nm);
}
}
System.out.println("----");
for(String nm: names){
if(nm.indexOf("张")==0){
System.out.println(nm);
}
}
//4、查找扩展名为“.java”的文件名。
String fileNames[]={"aa.java","1.c","aa.bat","aa.java.c","rr.doc.java","黄飞虎"};
String ext=".java";
for(String name:fileNames){
if(name.endsWith(ext)){
System.out.println(name);
}
}
}
public static void demo2(){
String s = "1234567";
System.out.println( s.length() ); //7
System.out.println( s.charAt(3) ); //4
System.out.println( s.getBytes().length );//7
System.out.println("----------");
s="1234567中国";
System.out.println( s.length() ); //9
System.out.println( s.charAt(7) ); //中
System.out.println( s.getBytes().length );//GBK:11 UTF-8:13
//判断某段字符是否含有汉字(假定只有中英文字符)--个数
s="1234567jkjkd字符串中没sww23";
if(s.getBytes().length==s.length()){
System.out.println("该段字符串中没有汉字");
}else{
System.out.println("该段字符串中有汉字");
}
//int num = (s.getBytes().length-s.length());//GBK
int num = (s.getBytes().length-s.length())/2;//UTF-8
System.out.println("中文字符个数:"+num);
//分别输出一个字符串中的中文字符、英文字母、数字
char cs[] = s.toCharArray();
for(char c:cs){
if((""+c).getBytes().length >1 ){
System.out.println("汉字:"+c);
}else if(c>='a'&&c<='z' || c>='A'&&c<='Z'){
System.out.println("英文字母:"+c);
}else if(c>='0'&&c<='9'){
System.out.println("数字:"+c);
}
}
}
public static void demo1(){
//String str="aaa32dsd32";
String str=new String("aaa32dsd32");
//aa(str);
System.out.println(str);
String str2 = "hncuJava";
//返回的字符串才是替换过的,原字符串其实并没有变化
String s = str2.replace("hncu", "HNCU");
System.out.println(str2+","+s);
}
public static void aa(String str){
System.out.println("222:"+str.replace("a", "b") );
}
}