常用API
API:应用程序接口
文档:https://docs.oracle.com/en/java/javase/18/docs/api/java.base/java/lang/String.html
对象创建的原理
String的基本使用
package Test;
public class Test {
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);
}
}
String类的面试题


字符串的内容比较



package Test;
import java.util.Scanner;
public class Test {
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();
// java中的==比较的是地址
// 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));
System.out.println(sysCode.equalsIgnoreCase(code1));
}
}
字符串API的使用

package Test;
import java.util.Scanner;
public class Test {
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是最厉害的编程语言";
// 012345678 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 repllacement)
String name3="金三胖是最厉害的80后,金三胖帮帮的!我好爱金三胖";
String rs3=name3.replace("金三胖","*****");
System.out.println(rs3);
// 7.public boolean contains(CharSequence s)
System.out.println(name3.contains("金三胖"));
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]);
}
}
}
String ·案例:验证码,登录,隐私号码

package Test;
import java.util.Random;
import java.util.Scanner;
//练习题:使用String完成随机生成5位的验证码
public class Test {
public static void main(String[] args) {
// 1.定义可能出现的字符信息
String dates="dafweaefsdfadfweadfcvzggjt1234567890";
// 2.循环5次,每次生成一个随机的索引,提取对应的自动连接起来即可
String code="";
Random r=new Random();
for (int i=0;i<5;i++)
{
// 随机一个索引
int index=r.nextInt(dates.length());
char c=dates.charAt(index);
code+=c;
}
// 3.输出字符串变量即可
System.out.println(code);
}
}

package Test;
import java.util.Random;
import java.util.Scanner;
//练习题:模拟用户登录
public class Test {
public static void main(String[] args) {
// 1.定义正确的登录名称和密码
String okLoginName="admin";
String okPassword="itheima";
// 2.定义一个循环,循环3次,让用户登录
Scanner sc=new Scanner(System.in);
for (int i=1;i<3;i++)
{
System.out.println("请输入登录名称:");
String loginNmae=sc.next();
System.out.println("请您输入登录密码:");
String password=sc.next();
// 3.判断登录是否成功!
if (okLoginName.equals(loginNmae)){
// 4.判断密码是否正确
if (okPassword.equals(password))
{
System.out.println("登录成功!欢迎进入系统随意浏览----");
break;
}else {
// 密码错误了
System.out.println("您的密码不正确!您还剩余"+(3-i)+"次登录机会!");
}
}else {
System.out.println("登录名称错误了!"+(3-i)+"次登录机会!");
}
}
}
}

package Test;
import java.util.Random;
import java.util.Scanner;
//练习题:手机号码屏蔽
public class Test {
public static void main(String[] args) {
// 1.键盘录入一个手机号码
Scanner sc=new Scanner(System.in);
System.out.println("请您输入您的手机号码:");
String tel=sc.next();
// 2.截取号码的前三位,后四位 16656668520
String before=tel.substring(0,3);// 0 1 2
String after=tel.substring(7);//从索引7开始截取到手机号码末尾
String s=before+"****"+after;
System.out.println(s);
}
}
版权声明:本文为ACBYCL原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。