目录
3.2.6、格式化字符串 String.format(" ")
String是引用数据类型,因此String str只是保存了字符串对象的地址,字符串对象到底是如何保存的呢?
所有高级语言,字符串类型,本质上都是字符数组,字符串就是由一个个的字符来组成。
一、字符串对象的创建
// a.通过字符串字面量直接赋值
String str = "hello";
// b.是类就有构造方法,通过构造方法产生对象
String str1 = new String("hello");
// c.通过字符数组来产生对象
char[] arr = new char[] {'h','e','l','l','o'};
String str2 = new String(arr);
// d.通过字符串的静态方法valueOf来产生对象
String str3 = String.valueOf("hello");
二、两个字符串对象的比较
2.1.通过==比较(比较的是两个字符串的地址,不看内容)
2.2.通过equals方法来比较两个字符串对象的内容是否相等(大小写敏感)返回boolean
2.3.通过equalslgnoreCase比较两个字符串对象的内容是否相等(大小写不敏感)boolean
2.4.通过compareTo方法来比较两个字符串大小的关系 返回int
2.4.1、compareTo方法的比较规则
三、字符串常用操作
3.1、字符串查找
3.1.1、练习:写一个方法,判断用户输入的字符串是否是纯数字组成
public static boolean isDigit(String str){
//先判断边界条件
if(str==null||str.length()==0){
return false;
}
//将字符串拆分为一个一个字符来判断
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
// //1.找到反例一定不是数字字符
// if(c<'0'||c>'9'){
// return false;
// }
//2.jdk中char的包装类Character中有一个静态方法可以判断字符是否为数字字符
if(!(Character.isDigit(i))){
return false;
}
}
return true;
}
3.2、字符串转化
3.2.1、其他类型转化为字符串对象
valueOf方法,可以接收所有参数
String s1 = String.valueOf(1234);
String s2 = String.valueOf(12.34);
String s3 = String.valueOf(true);
String s4 = String.valueOf(new Student("Hanmeimei", 18));
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
3.2.2、字符串转数字
//Integer、Double等是Java中的包装类型
int data1 = Integer.parseInt("1234");
double data2 = Double.parseDouble("12.34");
System.out.println(data1);
System.out.println(data2);
3.2,3、大小写转换(这两个函数只转换字母)
String s1 = "hello";
String s2 = "HELLO";
// 小写转大写
System.out.println(s1.toUpperCase());
// 大写转小写
System.out.println(s2.toLowerCase());
3.2.4、字符串转数组 toCharArray方法
String s = "hello";
// 字符串转数组
char[] ch = s.toCharArray();
for (int i = 0; i < ch.length; i++) {
System.out.print(ch[i]);
}
System.out.println();
// 数组转字符串
String s2 = new String(ch);
System.out.println(s2);
3.2.5、字符串转为字节数组 getBytes方法
3.2.6、格式化字符串 String.format(" ")
String s = String.format("%d-%d-%d", 2019, 9,14);
System.out.println(s);
3.3、字符串替换
使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下:
注意事项: 由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串.
3.4、字符串拆分
另外有些特殊字符作为分割符可能无法正确切分, 需要加上转义字符.
eg:以拆分ip地址为例
3.5、字符串截取
练习:传入一个字符串(只包含字母)进行首字母大写操作
String str5="weuowcnwo";
String str6=str5.substring(0,1).toUpperCase()+str5.substring(1);
System.out.println(str6);