字符串
一、String类
在java中字符串作为String类的实例来处理
-
声名字符串(java中,字符串必需包含在一对双引号""之内)
String str;
char a[] = {'g','o','o','d'}; //字符数组
String s = new String(a); //等价于 String s = new String("good");
char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a, 2, 4); //等价于 String s = new String("uden");
String str1,str2;
str1 = "We are student";
str2 = "We are student";
使用"+"连接多个字符串(java中一句相连的字符串不能分开在两行中写,如果需要在两行中写,在第一行行尾处加上"+"连接)
String str3 = str1 + str2;
字符串也可以同其他基本数据类型进行连接,连接会将这些数据直接转换成字符串。
public static void example4() {
int booktime = 4;
float practice = 2.5f;
System.out.println("我每天花费" + booktime + "小时看书;" + practice + "小时上机练习;");
System.out.println("我每天花费" + booktime + "小时看书;" + (practice+booktime) + "小时上机练习;");
}
二、获取字符串信息
字符串作为对象,可通过相应的方法获取字符串的有效信息
String str = "we are student";
int size = str.length();
indexOf(); //返回字符或字符串在另一字符串中首次出现的位置
lastIndexOf(); //返回字符或字符串在另一字符串中最后一次出现的位置
public static void example5() {
String stu = "we are students";
System.out.println(stu.indexOf('t'));
System.out.println(stu.indexOf("tu"));
System.out.println(stu.lastIndexOf('t'));
System.out.println(stu.length());
}
//使用charAt()方法可将指定索引处的字符返回
String str = "hello world";
char mychar = str.charAt(6);
三、字符串操作
//String类的substring()方法可以对字符串进行截取
//substring(int beginIndex, int endIndex);
String str = "hello world";
System.out.println(str.substring(6,9));
str = "hello world";
System.out.println(str.substring(6));
//str.trim();
String str = " java class ";
System.out.println(str.length());
str = str.trim();
System.out.println(str.length());
//str.replace(char oldChar, char newChar);
String str = "I like php";
str = str.replace("php", "java");
System.out.println(str);
//判断字符串是否以指定的内容开始或结束。返回boolean
//startsWith();
//endsWith();
String str = "I like php";
System.out.println(str.startsWith("I"));
System.out.println(str.startsWith("i"));
System.out.println(str.endsWith("php"));
-
对字符串对象进行比较不能简单的使用比较运算符"==",因为比较运算符是比较两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false
-
如果两个字符串具有相同的字符长度,使用equals()方法进行比较时,返回true
//equalsIgnoreCase(); 不区分大小写
public static void example11() {
String str1 = new String("hello java");
String str2 = new String("hello java");
System.out.println(str1 == str2); //false
System.out.println(str1.equals(str2)); //true
str1 = "hello java";
str2 = "hello java";
System.out.println(str1 == str2); //true
System.out.println(str1.equals(str2)); //true
str1 = "hello java";
str2 = "hello JAVA";
System.out.println(str1 == str2); //false
System.out.println(str1.equals(str2)); //false
System.out.println(str1.equalsIgnoreCase(str2)); //true
}
//compareTo();
public static void example12() {
String a = "a";
String c = "c";
String e = "e";
System.out.println(c.compareTo(a)); //2
System.out.println(c.compareTo(e)); //-2
}
//toLowerCase();
//toUppercase();
public static void example13() {
String str = "abcDEFG";
System.out.println(str.toLowerCase());
System.out.println(str.toUpperCase());
}
//split(); 按指定的分割字符或字符串对内容进行分割,并将分割后的结果放在字符串数组中
//str.split(String sign);
//str.split(String sign, int limit);
public static void example14() {
String str = "192.168.0.1";
String[] firstArray = str.split("\\.");
String[] secondArray = str.split("\\.", 3);
for(String x : firstArray) {
System.out.print("["+x+"]"); //[192][168][0][1]
}
for(String x : secondArray) {
System.out.print("["+x+"]"); //[192][168][0.1]
}
}
//String类的静态format()方法用于创建格式化的字符串
//str.format(String format, Object...args) //新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
//str.format(Local l,String format,Object...args) //使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。
String str = String.format("%d", 400 / 2); //将结果以十进制格式显示
String str2 = String.format("%b", 3 > 5); //将结果以boolean型显示
String str3 = String.format("%x", 200); //将结果以十六进制格式显示
System.out.println(str); //200
System.out.println(str2); //false
System.out.println(str3); //c8
Date date = new Date();
System.out.printf("全部日期和时间信息:%tc%n",date);
System.out.printf("年-月-日格式:%tF%n",date);
System.out.printf("月/日/年格式:%tD%n",date);
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
System.out.printf("HH:MM格式(24时制):%tR",date);
//通常被用于判断语句中,用来检查某一字符串是否满足某一格式
//matches();
public static void example17() {
String regex = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$";
String str1 = "asdfagearg";
String str2 = "aegagewg@sgesg";
String str3 = "segsseggg@qq.com";
System.out.println(str1.matches(regex)); //false
System.out.println(str2.matches(regex)); //false
System.out.println(str3.matches(regex)); //true
}
字符序列String-Builder类,大大提高频繁增加字符串的效率。大量的字符串拼接等操作时使用。
-
append(); 向字符串生成器中追加内容
-
insert(); 向字符串生成器中指定位置插入数据内容
-
delete(); 移除此序列的子字符串中的字符
public static void example18(){
StringBuilder str = new StringBuilder("aaa");
str = str.append("->bbb");
System.out.println(str.toString()); //aaa->bbb
str = str.insert(3, "->ccc");
System.out.println(str.toString()); //aaa->ccc->bbb
str = str.delete(3, 8);
System.out.println(str.toString()); //aaa->bbb
}
原文链接:https://www.cnblogs.com/duomen/p/12911882.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有