String

String,第1张

String 一、String字符串的存储方式

 

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填保留位数 后面为四舍五入之意

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3981664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存