文章目录
- 前言
- 1.封装类
- 2. 字符串转换
- 3. 数学方法:Math类
- 4.格式化输出
- 5.字符与字符串
- 6.String类的成员方法
- 7.StringBuilder概述
前言
此部分是java基础部分的数字与字符串的内容。
1.封装类
int是基本数据类型,每一个基本数据类型都对应一个类的类型。比如int对应的类类型就是Integer。这种类就叫做封装类。
- A:封装类型常应用于:字符串与基本数据类型之间的转换**
- B:8种封装类: Int——Integer , char——Character
byte——Byte , short——Short , long——Long , boolean——Boolean , float——Float, double——Double - C:转换及自动装箱、自动拆箱:
int i=5
//明转,基本类型转封装类
Integer it=new Integer(i);
//自动转,就叫自动装箱
Integer it2=i;
//明转,封装类转基本类型
int i3=it.inValue();
//自动转,叫自动拆箱
int i4=it;
- D:int的最大值可以通过其对应的封装类Integer.MAX_VALUE获得:
//int的最大值
System.out.println(Integer.MAX_VALUE);
//int的最小值
System.out.println(Integer.MIN_VALUE);
2. 字符串转换
- A:数字转字符串:使用String类的静态方法valueOf
int i=5;
String s=String.valueOf(i);
//方法2 自动装箱
Integer i2=i;
String s2=i2.toString();
- B:字符串转数字:调用Integer的静态方法parseInt
String s="999";
int i=Integer.parseInt(s);
3. 数学方法:Math类
java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在。
float f1 = 5.4f;
//5.4四舍五入即5
System.out.println(Math.round(f1));
//得到一个0-1之间的随机浮点数(取不到1)
System.out.println(Math.random());
//得到一个0-10之间的随机整数 (取不到10)
System.out.println((int)( Math.random()*10));
//开方
System.out.println(Math.sqrt(9));
//次方(2的4次方)
System.out.println(Math.pow(2,4));
//π
System.out.println(Math.PI);
//自然常数
System.out.println(Math.E);
4.格式化输出
用字符串拼接,维护性差,可以使用格式化输出便于维护(format)
%s表示字符串,%d表示数字, %n表示换行
String name="盖伦";
int kills=7;
String title="超神";
//%s 字符串 %d 数字 %n 回车换行
String s="%s在连续击杀%d个英雄后获得%s%n"
System.out.format(s,name,kills,title);
5.字符与字符串
- 字符,Character的常见方法
中文、英文、数字都是占一位的(取,逻辑上);只是最后存储的时候中文占2位
//转换:自动装箱
char ch='a';
Character ch1=ch;
//Character的常见方法
System.out.println(Character.isLetter('a'));//判断是否为字母
System.out.println(Character.isDigit('a')); //判断是否为数字
System.out.println(Character.isWhitespace(' ')); //是否是空白
System.out.println(Character.isUpperCase('a')); //是否是大写
System.out.println(Character.isLowerCase('a')); //是否是小写
System.out.println(Character.toUpperCase('a')); //转换为大写
System.out.println(Character.toLowerCase('A')); //转换为小写
String a = 'a'; //不能够直接把一个字符转换成字符串
String a2 = Character.toString('a'); //转换为字符串
- 字符串String
创建格式: String s=“盖伦”;
- A: String的表现像是一个头常量,一旦创建就不能更改。
不可改变的具体含义是指:
不能增加长度
不能减少长度
不能插入字符
不能删除字符
不能修改字符 - B:如果变量比较多,使用字符串格式化,就可以简洁明了
- C:字符串长度:
使用length()方法可以得知字符串长度
String s="gfhf";
System.out.println(s.length());
6.String类的成员方法
- 获取类
代码 | 功能 |
int length() | 获取字符串的长度 |
char charAt(int index) | 获取指定索引处的字符 |
int indexOf(String str) | 获取指定字符str在字符串中第一次出现的索引 |
int lastIndexOf(String str) | 获取指定字符str在字符串中最后一次出现的索引 |
String substring(int start) | 从start开始截取字符串 |
String substring(int start,int end) | 从start开始,到end结束截取字符串,左闭右开 |
- 判断类
代码 | 功能 |
boolean equals(Object obj) | 比较字符串是否相同(内容相同即可) |
boolean equalsIgnoreCase(String str | 比较字符串是否相同,忽略大小写 |
boolean startsWith(String str) | 判断字符串是否以str开头 |
boolean endsWith(String str) | 判断字符串是否以str结尾 |
boolean contains(String str) | 判断是否包含子字符串str |
- 转换类
代码 | 功能 |
char[] toCharArray() | 将字符串转换为字符数组 |
String toLowerCase() | 将字符串转换为小写 |
String toUpperCase() | 将字符串转换为大写 |
- 格式类
代码 | 功能 |
String trim() | 去除字符串两端空格 |
String[ ] split(String str) | 按照指定符号分割字符串 |
去掉首尾空格trim():
String sentence = " 盖伦,获得了 超神 的称号 ";
System.out.println(sentence);
//去掉首尾空格
System.out.println(sentence.trim());
分割split():
String s = "盖伦,在进行了连续8次击杀后,获得了 超神 的称号";
//根据,进行分割,得到3个子字符串
String s1[]=s.split(",");
for(String sub:s1){
System.out.println(sub);
}
- 替换类
代码 | 功能 |
String replaceAll(String src,String drc) | 用drc替换所有的src |
String replaceFirst(String src,String drc) | drc只替换第一个src |
String sentence = "盖伦,在进行了连续8次击杀后,获得了超神 的称号";
String temp = sentence.replaceAll("击杀", "被击杀"); //替换所有的
temp = temp.replaceAll("超神", "超鬼");
System.out.println(temp);
temp = sentence.replaceFirst(",","");//只替换第一个
System.out.println(temp);
7.StringBuilder概述
StringBuilder是一个可变字符串,与String相比,他的内容是可变的。对于字符串操作,它的性能更高。
- 为什么StringBuffer可以变长?
和String内部是一个字符数组一样,StringBuffer也维护了一个字符数组。 但是,这个字符数组,留有冗余长度。
比如说new StringBuffer(“the”),其内部的字符数组的长度,是19,而不是3,这样调用插入和追加,在现成的数组的基础上就可以完成了。如果追加的长度超过了19,就会分配一个新的数组,长度比原来多一些,把原来的数据复制到新的数组中,看上去 数组长度就变长了
。
成员方法:
代码 | 功能 |
int length() | 长度 |
int capacity | 容量 |
StringBuilder append(任意类型) | 添加 |
StringBuilder delete(int start,int end) | 删除 |
StringBuilder insert(int index,String str) | 插入 |
StringBuilder reverse() | 反转 |