psvm(String[] args){
String name="hello";//"hello" 常量存储在字符串池中,
name="张三";//“张三”赋值给栈中的name变量时,并没有修改池中数据,而是 重新开辟了一个空间存放数据
String name2="张三";
//字符串另一种创建方式:new String();
String str=new String("java");
String str2=new String("java");
sout(str==str2);//false
sout(str.equals(str2));//true
}
二、String的常用方法
1.public int length(); 返回字符串长度
2.public char charAt(int index); 返回某个位置的字符
3.public boolean contains(String str); 判断是否包含某个字符串
String content = "java是世界上最好的编程语言";
sout(content.length()); // 15
sout(content.charAt(content.length() - 1)); // 言
sout(content.contains("java")); // true
4.public char[] toCharArray(); 将字符串转换成数组
5.public int indexOF(String str); 查找str首次出现时的下标,存在则返回该下标,不存在则 返回-1
6.public int lastIndexOf(String str); 查找字符串在当前字符串中最后一次出现的下标索引
sout(content.toCharArray());[j,a,v,a,是,世,界,上,最,好,的,编,程,语,言, ,j,a,v,a]
sout(content.indexOf"java")); // 0
sout(content.indexOf("java", 4)); // 从索引4开始找 返回12
sout(content.lastIndexOf("java")); // 12
7. public String trim(); 去掉字符串前后空格
8. public String toUpperCase(); toLowerCase(); 转换大小写
9. public boolean endWith(str); startWith(str); 判断是否以str 结尾、开头
String ct = " hello world ";
sout(ct.trim()); // "hello world"
sout(ct.toUpperCase()); // HELLO WORLD
sout(ct.toLowerCase()); // hello world
sout(ct.endWith("world")); // true
sout(ct.startWith("hello")) // true
10.public String replace(char old, char new); 用心的字符或字符串替换旧的字符或字符串
11. public String[] split(String str); 对字符串拆分
sout(content.replace("java", "php")); // php是最好的语言, php no1
String say = "java is the best language";
String[] arr = arr.say.split(" ");
// (" ")的多种用法:"[ ,]+" 表示空格 逗号切分 +号表示切分可以多个 比如多个空格
sout(arr.length); // 5
sout(arr.length); // 5
for(String string : arr){ //遍历字符串
sout(string);
}
举例:
将每个单词的首字母改为大写
psvm(String[] args){
String str = "this is a text";
for(int i = 0; i < arr.length; i ++){
char first = arr[i].charAt(0);
char upperfirst = Character.toUpperCase(first);
String new = upperfirst + arr[i].substring(1);
}
}
三、可变长字符串
StringBuffer : 可变长字符串,运行效率慢、线程安全(老版)
StringBuilder : 可边长字符串、运行快、线程不安全(新版)
二者效率都比String高
psvm(String[] args){
// StringBuffer 和 StringBuilder 用法一致
StringBuffer sb = new StringBuffer();
// 1. append(); 追加
sb.append("java no1");
// 2. insert(); 添加、插入
sb.insert(0, "在第一个位置插入");
// 3.replace(); 替换
sb.replace(0, 9, str); // 左闭右开
// 4. delete(); 删除
sb.delete(0, 5); // 左闭右开
// 5. 清空
sb.delete(0, sb.length());
}
四、BigDecimal 类的使用
- 位置 java.math 包中
- 作用 精确计算浮点数
- 创建方式 BigDecimal bd = new BigDecimal("1.0");
BigDecimal bd1 = new BigDecimal("1.0"); // 需用字符串表示数字,更加精准
BigDecimal bd2 = new BigDecimal("0.9");
// 减法
BigDecimal r1 = bd1.subtract(bd2);
sout(r1); // 0.1
// 加法
BigDecimal r2 = bd1.add(bd2);
//乘法
BigDecimal r3 = bd1.multiply(bd2);
// 除法
BigDecimal r4 =new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"), x, BigDecimal.ROUND_HALF_UP);
//除不尽时 x填保留位数 后面为四舍五入之意



