USEGEAR

导航

java学习-4-核心类:字符串

实际上字符串String内部是通过一个char[]数组表示的。因此

String s = new String(new char[] {'h','e','l','l','o'};
和
String s = "hello";
是等价的
因为java的字符串作为对象放入常量池的。所以:
字符串比较不要用 “==“ 一定用equals。 Srting s1 = "hello"; String s2 = "HELLO".toLowerCase(); System.out.printlin(s1.equals(s2));//true System.out.printlin(s1==s2);//False

System.out.printlin(s1.equalsIgnoreCase);//忽略大小写的比较

System.out.println("Hello".contains("lo"));//包含


System.out.println("Hello".contains("lo"));//搜索子串
System.out.println("Hello".startsWith("He"));//子串开头

System.out.println("Hello".endsWith("lo"));//子串结尾

System.out.println("hello".substring(2));//llo
System.out.println("hello".substring(2,4));//ll

System.out.println(" \hello\r\n".trim());//去掉首尾空白字符
strip()方法也可以移除字符串首尾空白字符。它和trim()不同的是,类似中文的空格字符\u3000也会被移除:
"\u3000Hello\u3000".strip(); // "Hello"
" Hello ".stripLeading(); // "Hello "
" Hello ".stripTrailing(); // " Hello"

//字符串替换
String s = "Hello";
s.replace('e','~');
另外一种用正则表达式
String s = "A,,B;C ,D";
s.replaceAll("[\\,\\;\\s]+", ","); // "A,B,C,D"
//分割字符串 split()方法

//拼接字符串join()和format
String[] arr = {"A", "B", "C"};
String s = String.join("***", arr); // "A***B***C"
//类型转换

 

String.valueOf(123); // "123"
String.valueOf(45.67); // "45.67"
String.valueOf(true); // "true"
String.valueOf(new Object()); // 类似java.lang.Object@636be97c

//把字符串转换为int类型:
int n1 = Integer.parseInt("123"); // 123
int n2 = Integer.parseInt("ff", 16); // 按十六进制转换,255

//把字符串转换为boolean类型:
boolean b1 = Boolean.parseBoolean("true"); // true
boolean b2 = Boolean.parseBoolean("FALSE"); // false

//String和char[]的转换
char[] cs = "Hello".toCharArray(); // String -> char[]
String s = new String(cs); // char[] -> String

//通过new String(char[])创建新的String实例时,它并不会直接引用传入的char[]数组,而是会复制一份,所以,修改外部的char[]数组不会影响String实例内部的char[]数组,因为这是两个不同的数组。

 

//如果传入的对象有可能改变,我们需要复制而不是直接引用,需要修改构造器,复制一份Arrays.copyOf(OriginalScore, OriginalScore.length);

 

byte[] b1 = "Hello".getBytes(); // 按系统默认编码转换,不推荐
byte[] b2 = "Hello".getBytes("UTF-8"); // 按UTF-8编码转换
byte[] b2 = "Hello".getBytes("GBK"); // 按GBK编码转换
byte[] b3 = "Hello".getBytes(StandardCharsets.UTF_8); // 按UTF-8编码转换

byte[] b = ...
String s1 = new String(b, "GBK"); // 按GBK转换
String s2 = new String(b, StandardCharsets.UTF_8); // 按UTF-8转换

 

 

posted on 2021-12-30 11:55  USEGEAR  阅读(28)  评论(0编辑  收藏  举报