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填保留位数 后面为四舍五入之意
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)