字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。
char c = "皮皮虾".charAt(1);
System.out.println(c);
"皮皮虾"是一个对象。只要是对象就能使用点.
int result1 = "abc".compareTo("abc");
System.out.println(result1);
int result2 = "abc".compareTo("abd");
System.out.println(result2);
int result3 = "abd".compareTo("abc");
System.out.println(result3);
返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。
System.out.println("abc".compareTo("cba"));
比较第一个字符串,a-c=-2,则返回-2
简单来说就是判断前面的字符串是否包含后面的子字符串
System.out.println("HelloWorld!".contains("Wor"));
System.out.println("http://www.baidu.com".contains("https"));
System.out.println("text.txt".endsWith("txt"));
System.out.println("text.txt".endsWith("java"));
System.out.println("text.txt".startsWith("text"));
System.out.println("text.txt".startsWith("test"));
System.out.println("text.txt".startsWith("text",0));
System.out.println("text.txt".startsWith("test",1));
equals()考虑大小写
System.out.println("abc".equals("abc"));
System.out.println("abc".equals("aaa"));
如果给定对象与字符串相等,则返回 true;否则返回 false。
compareTo()会返回二者的差值,即返回的是一个数字;而equals就简单一些,只返回true或者false。
最后,compareTo()和equals()都可以判断其他基本数据类型,比如说Integer,Java的源码中对这两者方法都做了一些重载,可以根据参数的类型去自动匹配相应的方法,他们的原理也非常简单,只是一些简单的减法或者(?:)这类判断。
equalsIgnoreCase()忽略大小写
System.out.println("abc".equalsIgnoreCase("AbC"));
System.out.println("abc".equalsIgnoreCase("bbb"));
byte[] bytes = "abcde".getBytes();
for (byte b:bytes){
System.out.println(b);
}
System.out.println("abcdefghygklmn".indexOf("a"));
System.out.println("abcdefghygklmn".indexOf("def"));
System.out.println("abcdefghygklmn".indexOf("l"));
System.out.println("abcdefgaabbcc".lastIndexOf("a"));
System.out.println("abcdefgaabbcc".lastIndexOf("c"));
System.out.println("".isEmpty());
System.out.println("aaa".isEmpty());
String text = "aaabbbccc";
System.out.println(text.replace("a","d"));
String param = "name=皮皮虾&age=18&address=池塘";
System.out.println(param.replace("&",":"));
也可以根据字符串来分割
String str = "2020-08-14";
String[] splits = str.split("-");
for (String s: splits) {
System.out.println(s);
}
System.out.println("--------------");
String param = "name=皮皮虾&age=18&address=池塘";
String[] split = param.split("&");
for (String s: split) {
System.out.println(s);
}
beginIndex – 起始索引(包括), 索引从 0 开始。
endIndex – 结束索引(不包括)。
String text = "http://www.baidu.com";
System.out.println(text.substring(7));
System.out.println(text.substring(0,7));
char[] chars = "最爱皮皮虾".toCharArray();
for (char ch:chars){
System.out.println(ch);
}
String text = "aaAA";
System.out.println(text.toLowerCase());
System.out.println(text.toUpperCase());
去除字符串前后空白
String text = " hello world! ";
System.out.println(text.trim());
double d = 1111.11;
boolean b = false;
long l = 123456789;
char[] arr = {'w', 'o', 'r', 'l', 'd'};
System.out.println("返回值 : " + String.valueOf(d) );
System.out.println("返回值 : " + String.valueOf(b) );
System.out.println("返回值 : " + String.valueOf(l) );
System.out.println("返回值 : " + String.valueOf(arr) );
Valueof()底层调用toString()方法
当参数是对象时
public class Main {
public static void main(String[] args) {
String s = String.valueOf(new Person());
System.out.println(s);
}
}
class Person{
}
打印内存地址
public class Main {
public static void main(String[] args) {
String s = String.valueOf(new Person());
System.out.println(s);
}
}
class Person{
@Override
public String toString() {
return "我是皮皮虾";
}
}
Object o = new Object();
System.out.println(o);
实际上System.out.println()这个方法在输出任何数据的时候都是先转换成字符串,再输出。
觉得博主写的不错的读者大大们,可以点赞关注和收藏哦,谢谢各位!
博主更多博文