java基础 String
标准格式:
数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...};
省略格式:
数据类型[] 数组名称 = {元素1,元素2,...};
Scanner类实现的功能,可以实现键盘输入数据,到程序中
引用类型的一般使用步骤:
1、导包
import 包路径.类名称;
如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写。
只有java.lang包下的内容不需要导包,其他的包都需要import语句。
2、创建
类名称 对象名 = new 类名称();
3、使用
对象名.成员方法名()
1 /** 2 * java.lang.String类代表字符串 3 * API中说,Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。 4 * 其实就是说,程序当中所有的双引号字符串,都是String类的对象。(即使没有new,也照样是) 5 * 6 * 字符串特点: 7 * 1、字符串的内容用不可变。 8 * 2、正是应为字符串不可改变,所以字符串是可以共享使用的。 9 * 3、字符串效果上相当于char[]字符数组,但是底层原理是byte[]字节数组。 10 * 11 * 创建字符串的常见3+1方式 12 * 三种构造方法: 13 * public String();创建一个空白字符串,不含有任何内容 14 * public String(char[] array);根据字符数组的内容,创建字符串 15 * public String(byte[] array);根据字节数组的内容,创建字符串 16 * 一种直接创建: 17 * String str = "Hello"; 18 * 19 * 注意:直接写上双引号,就是字符串对象。 20 */ 21 public static void main(String[] args){ 22 //使用空参数构造 23 String str1 = new String(); 24 System.out.println("第一个字符串"+str1); 25 26 //根据字符数组穿件字符串 27 char[] charArray = {'a','s','f'}; 28 String str2 = new String(charArray); 29 System.out.println("第二个字符串"+str2); 30 31 //根据字节数组创建 32 byte[] byteArray = {97,98,99}; 33 String str3 = new String(byteArray); 34 System.out.println("第3个字符串"+str3); 35 36 //直接创建 37 String str4 = "Helo"; 38 System.out.println("第4个字符串" + str4); 39 }
1 /** 2 * 字符串常量池:程序当中直接写上双引号的字符串,就在字符串常量池中。 3 * 4 * 对于基本类型来说, == 是就行数值的比较。 5 * 对于引用类型, == 是进行【地址值】的比较。 6 * @param args 7 */ 8 public static void main(String[] args){ 9 String str1 = "abc"; 10 String str2 = "abc"; 11 12 char[] charArray = {'a','b','c'}; 13 String str3 = new String(charArray); 14 15 System.out.println(str1 == str2);//true 16 System.out.println(str1 == str3);//false 17 System.out.println(str2 == str3);//false 18 }
1 /** 2 * ==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法 3 * 4 * public boolean equals(Object obj);参数可以是任意类型,只有参数是字符串且内容相同才返回true,否则返回false 5 * 注意事项: 6 * 1、任何对象都能用Object进行接收 7 * 2、equals方法具有对称性,即:q.equals(b)和b.equals(a)效果一样 8 * 3、如果比较双方一个常量一个变量,推荐把常量字符串写在前面 9 * 推荐:"abc".equals(str) 不推荐:str.equals("abc") 10 * 11 * public boolean equalsIgnoreCase(String str);忽略大小写,进行内容比较。 12 */ 13 public static void main(String[] args){ 14 String str1 = "Hello"; 15 String str2 = "Hello"; 16 char[] charArray = {'H','e','l','l','o'}; 17 String str3 = new String(charArray); 18 19 System.out.println(str1.equals(str2));//true 20 System.out.println(str2.equals(str2));//true 21 System.out.println(str3.equals("Hello"));//true 22 System.out.println("Hello".equals(str1));//true 23 24 String str4 = "hello"; 25 System.out.println(str1.equals(str4));//false 26 System.out.println("====================="); 27 28 String str5 = "abc"; 29 System.out.println("abc".equals(str5));//推荐,一旦str5=null,则返回false 30 System.out.println(str5.equals("abc"));//不推荐,一旦str5=null,则报错,空指针异常NullPointerException 31 32 System.out.println("====================="); 33 34 String strA = "Java"; 35 String strB = "java"; 36 System.out.println(strA.equals(strB));//false 严格区分大小写 37 System.out.println(strA.equalsIgnoreCase(strB));//true 忽略大小写 38 39 //注意:只有英文字母区分大小写,其他都不区分大小写 40 System.out.println("abc一123".equalsIgnoreCase("abc壹123"));//false
1 /** 2 * String当中与获取相关的常用方法: 3 * public int length(); 获取字符串中字符个数,即长度。 4 * public String concat(String str);将当前字符串和参数字符串拼接,并返回新的字符串。 5 * public char charAt(int index);获取指定索引位置的字符串。 6 * public int indexOf(String str);查找参数字符串在本字符串当中首次出现的索引,如果没有,则返回-1。 7 */ 8 public class DemoStringGet{ 9 public static void main(String[] args){ 10 //获取字符串的长度 11 int length = "adfajdflkjaldfjlad".length(); 12 System.out.println("字符串的长度是:" + length); 13 14 //拼接字符串 15 String str1 = "Hello"; 16 String str2 = "World"; 17 String str3 = str1.concat(str2); 18 System.out.println(str1); 19 System.out.println(str2); 20 System.out.println(str3); 21 22 System.out.println("======================"); 23 //获取指定索引位置的单个字符 24 char ch = "Hello".charAt(1); 25 System.out.println("在索引位置1的字符是" + ch); 26 } 27 }
1 /** 2 * 字符串的截取方法: 3 * public String substring(int index); 截取从参数位置一直到字符串末尾,返回新的字符串。 4 * public String substring(int begin, int end); 截取从begin开始,一直到end结束。 5 * 备注:[begin,end)包含左边,不包含右边 6 */ 7 public static void main(String[] args){ 8 String str1 = "HelloWorld"; 9 String str2 = str1.substring(5); 10 System.out.println(str1);//HelloWorld 11 System.out.println(str2);//World 12 13 String str3 = str1.substring(4,7); 14 System.out.println(str3); 15 }
引入:
import java.util.Scanner;
1 /** 2 * 计算键盘输入的各个字符出现的次数。 3 * 需要堆字符串一个字符一个字符检查,Stirng-->char[],方法是:toCharArray() 4 * 5 */ 6 public static void main(String[] args){ 7 Scanner sc = new Scanner(System.in); 8 System.out.println("请输入一个字符串:"); 9 String input = sc.next();//获取键盘输入字符串 10 11 int countUpper = 0; 12 int countLower = 0; 13 int countNumber = 0; 14 int countOther = 0; 15 16 char[] charArray = input.toCharArray(); 17 for (int i = 0; i < charArray.length; i++) { 18 char ch = charArray[i];//当前单个字符 19 if('A' <= ch && ch <= 'Z'){ 20 countUpper ++; 21 }else if('z' <= ch && ch<= 'z'){ 22 countLower ++; 23 }else if(0 <= ch && ch <= 9){ 24 countNumber ++; 25 }else{ 26 countOther ++; 27 } 28 } 29 System.out.println("大写字母个数:" + countUpper); 30 System.out.println("小写字母个数:" + countLower); 31 System.out.println("数字个数:" + countNumber); 32 System.out.println("其他个数:" + countOther); 33 }