字符串操作
/*
* 1.string类
* 1.1字符串的声明
* 在Java语言中,字符出啊必须包含在一对双引号("")内;
* 声明字符串变量必须进行初始化,否则编译器会报出“变量为被初始化错误”;
* 1.2字符串的创建
* 不是通过new的方式创建的两个相同字符串,具有相同的实体,其指向的地址一样
* 2.连接字符串
* 2.1连接多个字符串
* 使用"+"运算符可以实现多个字符串的拼接功能
* Java中一句相连的字符串不能分开在两行中写,可以使用“+”进行拼接
* 2.2连接其他数据类型
* 如果将字符串同其他基本数据类型进行连接,会将那些数据直接转换成字符串(调用toString()方法)
* 只要"+"运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串类型
* 3.获取字符串信息
* 3.1获取字符串长度
* str.length();
* 3.2字符串查找
* str.indexOf(String s) 返回搜索的字符串首次出现的索引
* str.lastIndexOf(String s) 返回搜索字符串最后一次出现的索引
* 如果lastIndexOf()方法中的参数为控字符串(注意不是空格),则返回的结果和调用length()方法的返回结果相同
* 3.3获取指定索引位置的字符
* str.charAt(int index) 返回指定索引处的字符
* 4.字符串操作
* 4.1获取子字符串
* str.subString(int beginIndex)
* 从指定位置开始截取直到字符串的结尾的子串
* 在字符串中,空格占用一个索引位置
* 4.2去除空格
* str.trim();
* 返回字符串的副本,忽略前导空格和尾部空格
* 4.3字符串替换
* str.replace(char oldChar,char newChar);
* 如果要替换的字符或者字符串在原字符串中重复出现多次,replace()方法会将所有的oldChar替换成newChar
* 注意replace()区分大小写。
* 4.4判断字符串的开头和结尾
* str.startsWith(String prefix);
* str.endsWith(String suffix);
* 两个方法的返回值类型为Boolean型
* 4.5判读字符串是否相等
* 不能简单的使用比较运算符“==”,因为比较运算符比较的是地址是否相同,即使两个字符串的内容相同,两个对象的内存地址也是不同的
* str.equals(String otherstr);
* 如果两个字符穿具有相同的字符和长度,使用equals()方法比较时,返回true;
* str.equalsIgnoreCase(String otherstr);
* 使用equals()方法比较时是区分大小写的,equalsIgnoreCase()忽略大小写,返回值仍是boolean型
* 4.6按字典顺序比较两个字符串
* str.compareTo(String otherstr);
* str先于otherstr,返回负整数;反之返回正整数;如果两个字符串相等,则结果为0;
* compareTo()方法只有在equals(Object)方法返回true是才返回0.
* 4.7字符串大小写转换
* str.toLowerCase();将string转换成小写
* str.toUpperCase();将string转换成大写
* 使用toLowerCase()和toUpperCase()方法进行大小写转换时,数字或非字符不受影响
* 4.8字符串分割
* str.split(String sign);其中sign为分割字符串的分割符,也可以使用正则表达式
* 如果想定义多个分割符,可以使用“|”,如",|="表示的分割符为","和"="。
* 5.格式化字符串
* str.format(String format,OBject....args);
* format为格式字符串;args是格式字符串中由格式说明符引用的参数
* 5.1日期和时间字符串的格式化
* 记住一些常用的常规转换符 %tc 全部时间和日期信息 ;%ty %tY 年; %tm 月;%td 日;%tH ;%tM;%tS;
* 5.2常规类型格式化
* 6.使用正则表达式
* 正则表达式通常用于判断语句中,用来检查某一字符串是否满足某一条件
* 在正则表达式中"."代表任何一个字符,所以想要在正则表达式中使用普遍意义上的点字符".",必须使用转义字符"/";
* 7.字符串生成器
* StringBuilder类
* append(content) 向字符串生成器中追加内容
* insert(int offset.arg)向字符串生成器中的指定位置插入数据内容
* delete(int start,int end) 移除次序列的子字符串中的字符
* */
public class Demo {
public static void main(String[] args) {
/*
char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a,2,4);
String s1 = new String(a);
*/
/*
System.out.println(s1);
System.out.println(s.length());
*/
/*
System.out.println(s1.indexOf("t"));
System.out.println(s1.lastIndexOf("t"));
*/
/*
System.out.println(s1.charAt(5));
*/
String str = "Hello World! ";
/*
String str1 = str.substring(2);
System.out.println(str1);
*/
/*
String str1 = str.trim();
System.out.println(str1);
*/
/*
String newStr = str.replace("o", "a");
System.out.println(newStr);
*/
/*
boolean rel = str.startsWith("He");
boolean re11 = str.endsWith("d");
System.out.println(rel);
System.out.println(re11);
*/
/*
String tom = new String("i am a student.");
String jack = new String("i am a student.");
String xiaoming = new String("I am a student.");
System.out.println(tom==jack);
System.out.println(tom.equals(jack));
System.out.println(tom.equals(xiaoming));
System.out.println(tom.equalsIgnoreCase(xiaoming));
*/
/*
String tom = "student";
String jack = "teacher";
String lihua = "student";
System.out.println(tom.compareTo(jack));
System.out.println(tom.compareTo(lihua));
*/
/*
String str1 = str.toLowerCase();
String str2 = str.toUpperCase();
System.out.println(str1);
System.out.println(str2);
*/
/*
String s = new String("abc,def,ghi,jkl");
String newStr[] = s.split(",");
for(int i = 0;i<newStr.length;i++){
System.out.println(newStr[i]);
}
String[] newStr2 = s.split(",",2);
for(int i = 0; i<newStr2.length;i++){
System.out.println(newStr2[i]);
}
*/
/*
StringBuilder sb = new StringBuilder("Hei,");
sb.append("Tom.");
System.out.println(sb);
sb.insert(4, "I am ");
System.out.println(sb);
sb.delete(4,9);
System.out.println(sb);
*/
/*
String str1 = new String("I am a student");
String str2 = new String("you are Stu1");
String newStr1 = str1.substring(7, 10);
String newStr2 = str2.substring(8, 11);
boolean rel = newStr1.equalsIgnoreCase(newStr2);
if(rel){
System.out.println("两个子串相同");
}else{
System.out.println("两个子串不同");
}
*/
/*
String text = "18037714567";
String regex = "1[0-9]{10}";
if(text.matches(regex)){
System.out.println(text+"是一个合法的手机号");
}else{
System.out.println("不是");
}
*/
StringBuilder str1 = new StringBuilder("报数:");
for(int i =1; i< 11; i++){
str1.append(i+",");
}
System.out.println(str1);
}
}