13. java String类
发布时间:2020-12-15 07:21:12 所属栏目:Java 来源:网络整理
导读:一、字符串类 /*java.lang.String类代表字符串程序中所有的双引号字符串,都是String类的对象。就算没有new字符串中的内容,永不变;不可变字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组*/package china.java.demo;/*创建字符串3+1中方
一、字符串类/* java.lang.String类代表字符串 程序中所有的双引号字符串,都是String类的对象。就算没有new 字符串中的内容,永不变;不可变 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组 */ package china.java.demo; /* 创建字符串3+1中方式;三种构造方法,一种直接创建 1. public String(),创建一个空白字符串,不含有任何内容 2. public String(char[] array),根据字符数组的内容,来创建对应的字符串 3. public String(byte[] array),根据字节数组的内容,来创建对应的字符串 */ public class Demo01 { public static void main(String[] args) { // 使用空参构造 String str1 = new String(); System.out.println("第一个字符串" + str1); // 使用字符数组 char[] charArray = {'A','B','C'}; String str2 = new String(charArray); System.out.println(str2); // 使用字节数组 byte[] byteArray = {98,99}; String str3 = new String(byteArray); System.out.println(str3); // 直接创建 String str4 = "Hello"; System.out.println(str4); } } 二、字符串方法1. 字符串比较方法/* == 对象地址值比较,字符串内容比较,可使用2个方法 public boolean equal(Object obj),参数可以是任何对象 */ /* 创建字符串3+1中方式;三种构造方法,一种直接创建 1. public String(),创建一个空白字符串,不含有任何内容 2. public String(char[] array),根据字符数组的内容,来创建对应的字符串 3. public String(byte[] array),根据字节数组的内容,来创建对应的字符串 注意事项: 1. 如果比较双方一个常量一个变量,推荐把常量字符串写在前面 */ public class Demo01 { public static void main(String[] args) { // 直接创建 String str1 = "Hello"; String str2 = "Hello"; char[] charArray = {'H','e','l','o'}; String str3 = new String(charArray); String str4 = "hello"; System.out.println(str1.equals(str2)); //true System.out.println(str1.equals(str3)); //true System.out.println(str3.equals("Hello")); //true System.out.println("Hello".equals(str1)); //true System.out.println(str1.equals(str4)); //false } } /* public boolean equalsIgnoreCase(String str),忽略大小写,进行内容比较 */ package china.java.demo; public class Demo01 { public static void main(String[] args) { // 直接创建 String str1 = "Hello"; String str2 = "hello"; System.out.println(str1.equalsIgnoreCase(str2)); //true } } 2. 字符串获取/* public int length(),获取字符串中含有字符个数,拿到字符串长度 public String concat(String str),将当前字符串和参数字符串拼成新字符串 public char charAt(int index),获取指定索引位置的单个字符 public int indexOf(String str),查找参数字符串在本字符串中出现的索引位置,没有返回-1 */ package china.java.demo; public class Demo01 { public static void main(String[] args) { // 直接创建 String str1 = "HelloRGHJKJHGFyuioefywfwhfuwiehfwei"; System.out.println(str1.length()); //35 System.out.println(str1.concat("AB")); System.out.println(str1.charAt(10)); //J System.out.println(str1.indexOf("fwei")); //31 System.out.println(str1.indexOf("f")); //19 System.out.println(str1.indexOf("q")); //-1 } } 3. 字符串截取方法/* public String substring(int index),截取从参数位置一直到字符串结尾,返回新字符串 public String substring(int begin,int end),左闭右开 */ public class Demo01 { public static void main(String[] args) { // 直接创建 String str1 = "Helloworld"; String str2 = str1.substring(5); String str3 = str1.substring(1,4); System.out.println(str2); //world System.out.println(str3); //ell } } 4. 字符串转换方法/* public char[] toCharArray(),将当前字符串拆分为字符数组作为返回值 public byte[] getBytes(),获取当前字符串底层的字节数组 public String replace(CharSequence,oldString,CharSequence newString),将所有出现的老字符串替换成新字符串,返回替换之后的结果新字符串;备注:CharSequence可以接受字符串类型 */ public class Demo01 { public static void main(String[] args) { char[] chars = "Hello".toCharArray(); System.out.println(chars[0]); //H System.out.println(chars.length); //5 byte[] bytes = "world".getBytes(); for (int i = 0; i < bytes.length; i++) { System.out.println(bytes[i]); } String str1 = "how do you do"; String str2 = str1.replace("o","*"); System.out.println(str1); //how do you do System.out.println(str2); //h*w d* y*u d* } } 5. 字符串分隔方法/* public String[] split(String regex),按照参数规则,将字符串切分成若干部分 split参数其实是一个表达式;如果按照英文句点 . ,必须写 */ public class Demo01 { public static void main(String[] args) { String str1 = "aaa,bbb,ccc"; String[] array1 = str1.split(","); for (int i = 0; i <array1.length ; i++) { System.out.println(array1[i]); } String str2 = "aaa.bbb.ccc"; String[] array2 = str1.split("."); System.out.println(array2.length); //0 String[] array3 = str2.split("."); System.out.println(array3.length); //3 for (int i = 0; i <array3.length ; i++) { System.out.println(array3[i]); } } } 三、字符串练习1. 拼接字符串// 定义一个方法,把数组[1,2,3]按照指定格式拼接成一个字符串。格式如:[world1#world2#world3] public class Demo01 { public static void main(String[] args) { int[] array = {1,3}; System.out.println(fromArrayToString(array)); } public static String fromArrayToString(int[] array) { String new_str = ""; for (int i = 0; i < array.length; i++) { new_str = new_str + "world".concat(Integer.toString(array[i])) + "#"; System.out.println(new_str); } return "[" + new_str + "]"; } } public class Demo01 { public static void main(String[] args) { int[] array = {1,3}; System.out.println(fromArrayToString(array)); } public static String fromArrayToString(int[] array) { String str = "["; for (int i = 0; i < array.length; i++) { if (i == array.length - 1) { str += "world" + array[i] + "]"; } else { str += "world" + array[i] + "#"; } } return str; } } 2. 统计各字符在字符串中出现的次数package china.java.demo; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { // 创建一个输入对象 Scanner sc = new Scanner(System.in); System.out.print("请输入一个字符串:"); // 输入字符串 String input = sc.next(); int countUppper = 0; int countLower = 0; // 将字符串拆解成字符数组进行迭代 char[] charArray = input.toCharArray(); for (int i = 0; i < charArray.length; i++) { char ch = charArray[i]; if ('A' <= ch && ch <= 'Z') { countUppper++; } else { countLower++; } } System.out.println(countLower); System.out.println(countUppper); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |