/**
*
*
- String API
- 构造方法 String();
-
String(byte[] bytes);
-
String("abc");
-
String("char[] chars);
*/
public class Test {
public static void main(String[] args) {
// String 空参构造方法。
String s1 = new String();
System.out.println(s1);
// byte数组构造方法。
byte[] bs = {1,2,3};
String s2 = new String(bs);
System.out.println(s2);
// char类型数
char[] chars = {'a','b','c'};
String s3 = new String(chars);
System.out.println(s3);
//String字符串构建
String s4 = new String("abc");
// String
String s5 = "abc";
}
}
/**
*
- String 对象实例化对比。
*/
public class Text {
public static void main(String[] args) {
String str = "abc";// 直接使用常量赋值的字符串,常量值就在堆的字符串缓冲区。
String str1 = new String("abc");// 在堆中创建空间。
// str==str1
System.out.println(str==str1);
// str.equals(str1);
System.out.println(str.equals(str1));
String str2 = new String("abc");
String str3 = new String("abc");
// str2==str3
System.out.println(str2==str3);// 不相等。
String str4 = "abc";
String str5 = "abc";
System.out.println(str4==str5);// abc在字符串缓冲池里是个常量。
// 问题: String str = "abc"; 表示字符串定义的常量值不会发生改变。
str4 = str4+"d";
System.out.println(str4);// str4 的常量值不会发生改变。
// String 定义的字符串是唯一的不可变的。
String a = "a";
a = "a"+"b";
a = a+"c";
a = "a"+a+"d";
a = "a"+a;
}
}
public class StringDemo {
public static void main(String[] args) {
String url = "www.baidu.com";
// charAt 返回指定位置的字符。
char a = url.charAt(4);// 根据索引差到字符。
System.out.println(a);
// indexOf
int b = url.indexOf(".");// 根据字符返回下标
System.out.println(b);
// lastindexOf
int c = url.lastIndexOf(".");// 根据最后一次出现的字符,返回下标。
System.out.println(c);
// 字符串比较
String d = "hello";
String e = "hello1";
System.out.println(d.compareTo(e));
// 字符串拼接。
d = d.concat("word");
System.out.println(d);
// 是否包含某个字符串
containsDemo();
startWithDemo();
equalshDemo();
getBytesDemo();
toCharArrayDemo();
toLowerCaseDemo();
trimDemo();
}
// trim 去除字符串前后的空格。
public static void trimDemo(){
String url1 = " www.baid u.com ";
System.out.println("原字符串长度"+url1.length());
String trim = url1.trim();
System.out.println(trim);
System.out.println("去除空格后的长度"+trim.length());
}
//toLowerCase() 转换成小写 toUpperCase() 转换成大写
public static void toLowerCaseDemo(){
String url = "HELLO WORD";
String lowerCase = url.toLowerCase();
System.out.println(lowerCase);
String upperCase = url.toUpperCase();
System.out.println(upperCase);
}
// toCharArray
public static void toCharArrayDemo(){
String url = "abc";
char[] charArray = url.toCharArray();
System.out.println(Arrays.toString(charArray));
}
// getBytes
public static void getBytesDemo(){
String url = "abc";
byte[] bytes = url.getBytes();
System.out.println(Arrays.toString(bytes));
}
// equals equalsIgnoreCase
public static void equalshDemo(){
String url = "www.baidu.com";
String url1 = "WWW.baiDU.Com";
System.out.println(url.equals(url1));
System.out.println(url.equalsIgnoreCase(url1));// 忽略大小写比较
}
// startsWith endsWith// 判断前缀后缀是否相同。
public static void startWithDemo(){
String url = "www.baidu.com";
System.out.println(url.startsWith("www"));
System.out.println(url.endsWith("com"));
}
// contains
public static void containsDemo(){
String url = "www.baidu.com";
System.out.println(url.contains("baid5"));
}
}
public class StringDemo02 {
public static void main(String[] args) {
split();
subStringDemo();
// 完成以下演示。
/*
* replace();
* valueOf();
* ifEmpty();
*/
}
public static void subStringDemo(){
// 字符串截取。
String url = "http://www.baidu.com/news";
// 获取http:
String substring = url.substring(7,10);// 从哪里开始,到哪里结束。
System.out.println(substring);
// 获取www,我有一个办法。
int index = url.indexOf("/");
int last = url.indexOf(".");
System.out.println(index);
System.out.println(last);
String substring2 = url.substring(index+2, last);
System.out.println(substring2);
}
// 字符串切割
public static void split(){
String str = "a.b.c.d.e.f";
String[] split = str.split("\\.");// 某些字符需要转义。
System.out.println(split[0]);
System.out.println(split[1]);
System.out.println(split[2]);
System.out.println(split[3]);
}
}