Java String 字符串
package com.domain.string; /** 目标:String类创建字符串对象的2种方式 */ public class StringDemo2 { public static void main(String[] args) { // 方式一:直接使用双引号得到字符串对象 String name = "我爱你中国"; System.out.println(name); // 方式二: // 1、public String(): 创建一个空白字符串对象,不含有任何内容 (几乎不用) String s1 = new String(); // s1 = "" System.out.println(s1); // 2、public String(String): 根据传入的字符串内容,来创建字符串对象(几乎不用) String s2 = new String("我是中国人"); System.out.println(s2); // 3、public String(char[] c): 根据字符数组的内容,来创建字符串对象 char[] chars = {'a' , 'b' , '中', '国'}; String s3 = new String(chars); System.out.println(s3); // 4、public String(byte[] b): 根据字节数组的内容,来创建字符串对象 byte[] bytes = {97, 98, 99, 65, 66, 67}; String s4 = new String(bytes); System.out.println(s4); System.out.println("---------------------------------------"); String ss1 = "abc"; String ss2 = "abc"; System.out.println(ss1 == ss2); char[] chars1 = {'a' , 'b' , 'c'}; String ss3 = new String(chars1); String ss4 = new String(chars1); System.out.println(ss3 == ss4); } }
package com.domain.string; public class StringDemo3 { public static void main(String[] args) { String s1 = "abc"; String s2 = "a" + "b" + "c"; System.out.println(s1 == s2); } }
内容比较,当是==判断由于内存地址不一样 因此不相等 需要使用.equals()
基本数据类型 int a int b 比较是值的时候用 == ,如果是引用类型是内存地址比较必须要用 equals
import java.util.Scanner; public class StringAPIEqualsDemo4 { public static void main(String[] args) { // 1、正确登录名和密码 String okName = "itheima"; String okPassword = "123456"; // 2、请您输入登录名称和密码 Scanner sc = new Scanner(System.in); System.out.println("登录名称:"); String name = sc.next(); System.out.println("登录密码:"); String password = sc.next(); // 3、判断用户输入的登录名称和密码与正确的内容是否相等。 if(okName.equals(name ) && okPassword.equals(password)){ System.out.println("登录成功!"); }else { System.out.println("用户名或者密码错误了!"); } // 4、忽略大小写比较内容的Api: 一般用于比较验证码这样的业务逻辑 String sysCode = "23AdFh"; String code1 = "23aDfH"; System.out.println(sysCode.equals(code1)); // false System.out.println(sysCode.equalsIgnoreCase(code1)); // true } }
/** 目标:掌握String常用的其他API。 */ public class StringAPIOtherDemo5 { public static void main(String[] args) { // 1、public int length(): 获取字符串的长度 String name = "我爱你中国love"; System.out.println(name.length()); // 2、public char charAt(int index): 获取某个索引位置处的字符 char c = name.charAt(1); System.out.println(c); System.out.println("------------遍历字符串中的每个字符--------------"); for (int i = 0; i < name.length(); i++) { char ch = name.charAt(i); System.out.println(ch); } // 3、public char[] toCharArray():: 把字符串转换成字符数组 char[] chars = name.toCharArray(); for (int i = 0; i < chars.length; i++) { char ch = chars[i]; System.out.println(ch); } // 4、public String substring(int beginIndex, int endIndex) :截取内容,(包前不包后的) String name2 = "Java是最厉害的编程语言!"; // 01234567 89 String rs = name2.substring(0, 9); System.out.println(rs); String rs1 = name2.substring(4, 9); System.out.println(rs1); // 5、public String substring(int beginIndex):从当前索引一直截取到末尾 String rs2 = name2.substring(4); System.out.println(rs2); // 6、public String replace(CharSequence target, CharSequence replacement) String name3 = "金三胖是最厉害的80后,金三胖棒棒的!我好爱金三胖"; String rs3 = name3.replace("金三胖", "***"); System.out.println(rs3); // 7、public boolean contains(CharSequence s) System.out.println(name3.contains("金三胖")); // true System.out.println(name3.contains("金二胖")); // false // 8、public boolean startsWith(String prefix) System.out.println(name3.startsWith("金三胖")); System.out.println(name3.startsWith("金三胖是最厉害的")); System.out.println(name3.startsWith("金三胖是最厉害的2")); // 9、public String[] split(String s): 按照某个内容把字符串分割成字符串数组返回。 String name4 = "王宝强,贾乃亮,陈羽凡"; String[] names = name4.split(","); for (int i = 0; i < names.length; i++) { System.out.println("选择了:" + names[i]); } } }