package demo.api;
import java.util.Arrays;
import java.util.Scanner;
/*
* String 和 StringBuffer 区别:
* 1.StringBuffer没有重写equals方法
* 2.StringBuffer不能使用+
* */
//字符串首尾去除空格—字符串反转—查询指定字符串出现次数 见 algorithm包
class StringTest {
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
//constructorMethod();//String 的构造方法
//getMethod(); //String的获取方法
//judgmentMethod(); //String的判断方法
otherMethod(); //String的其他方法
//conversion(); //转换的方法。字节数组与字符数组、字符串他们三者之间是可以互相转换。
}
//String 的构造方法
private static void constructorMethod() {
String str = new String();
long num = 9223372036854775807L;
str = String.valueOf(num);
System.out.println("使用一个long类型构建一个字符串对象:" + str);
byte[] buf = {97, 98, 99};
str = new String(buf);
System.out.println("使用一个字节数组构建一个字符串对象:" + str);
//使用一个字节数组构建一个字符串对象,指定开始解码的索引值和解码的个数。
str = new String(buf, 1, 2);
System.out.println("指定开始解码的索引值和解码的个数:" + str);//bc
char[] arr = {'明', '天', '是', '圣', '诞'};
str = new String(arr);
System.out.println("使用字符数组构建一个字符串:" + str);
str = new String(arr, 3, 2);
System.out.println("指定开始解码的索引值和解码的个数:" + str);//圣诞
int[] buf2 = {65, 66, 67};
str = new String(buf2, 0, 3);
System.out.println("使用一个字符数组构建一个字符串:" + str);
}
//String的获取方法
private static void getMethod() {
String str = "abc中国ab中国";
System.out.println("根据索引值获取对应的字符:" + str.charAt(3));//中
//如果子串没有出现 在字符串中,那么则返回-1
System.out.println("查找子串第一次出现的索引值:" + str.indexOf("中国"));//3
System.out.println("从指定下标开始查找子串第一次出现的索引值:" + str.indexOf("中国", 4));//7
System.out.println("查找子串最后一次出现的索引值:" + str.lastIndexOf("中国"));//7
}
//String的判断方法
private static void judgmentMethod() {
String str = "";
System.out.println("判断字符串是否为空内容:" + str.isEmpty());
str = "Demo.java";
System.out.println("是否以指定 的字符串开始:" + str.startsWith("Demo"));
System.out.println("是否以指定 的字符串结束:" + str.endsWith("va"));
System.out.println("判断字符串是否包含指定的内容:" + str.contains("Demo"));
System.out.println("判断两个字符串的内容是否一致:" + "DEMO.JAVA".equals(str));
System.out.println("判断两个字符串的内容是否一致(忽略大小写):" + "DEMO.JAVA".equalsIgnoreCase(str));
System.out.println("abc".compareTo("abc"));//返回this - " " (this比" "大多少)//前面比过后面就不再比较
}
//String的其他方法
private static void otherMethod() {
String str = "今天晚上不考试";
System.out.println("以旧换新:" + str.replace("不", "要好好"));
str = "大家-下-午-好";
String[] str2 = str.split("-");
System.out.println("根据指定的字符进行切割:" + Arrays.toString(str2));//[大家, 下, 午, 好]
str = "大家.下.午.好";
String[] str3 = str.split("\\.");
System.out.println("根据指定的字符进行切割:" + Arrays.toString(str3));//[大家, 下, 午, 好]
for (int i = 0; i < str3.length; i++) {
System.out.println(str3[i]);
}
str = "广州传智播客";
System.out.println("指定开始的索引值截取子串:" + str.substring(2));//传智播客
System.out.println("指定开始和结束的索引值截取子串:" + str.substring(2, 6));//[...) 前闭后开
str = "abC中国";
System.out.println("转大写:" + str.toUpperCase());//ABC中国
str = "AbdfSDD";
System.out.println("转小写:" + str.toLowerCase());//abdfsdd
str = " 大家最近 都非常努力 ";
System.out.println("去除字符串首尾的空格:" + str.trim());//大家最近 都非常努力;
System.out.println("去除所有空格:" + str.replace(" ", ""));//大家最近都非常努力
System.out.println("String的多行输入(^D结束):");
str = sc.nextLine();
while (sc.hasNext()) {//hasNext()函数,作用就是判断是否还有下一个元素,以CTRL+D结束。
str += "\n";
str += sc.nextLine();
}
System.out.println("多行输入结果:" + str);
}
//String转char[],byte[],
private static void conversion() {
String str = new String("abc");
System.out.println("字符串的内容:" + str);
char[] buf = str.toCharArray(); //把字符串转换字符数组
System.out.println(/*"字符数组:" + */(buf));
System.out.println("字符数组:" + Arrays.toString(buf));
byte[] buf2 = str.getBytes(); //把字符串转字节数组
// System.out.println("字节数组:" + buf2);
System.out.println("字节数组:" + Arrays.toString(buf2));
char[] ch = {'a', 'b', 'c'};
str = String.valueOf(ch);
System.out.println("将字符数组转换为字符串:" + str);
}
}
String的常用方法
Java字符串操作详解与示例
最新推荐文章于 2024-12-11 20:48:41 发布
这篇博客详细介绍了Java中String、StringBuffer类的区别及其常用方法,包括构造方法、获取方法、判断方法和其他实用方法,如字符串的替换、切割、转换等操作,并通过实例演示了如何在实际编程中应用这些方法。
864

被折叠的 条评论
为什么被折叠?



