API
API是应用程序编程接口。(Application Programming Interface)
JAVA API:指的是JDK中提供的各种功能的JAVA类
Demo:
import javax.sound.sampled.Line;
import java.util.Scanner;
public class JavaStudyDay11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入字符串:");
String line = sc.nextLine(); //Ctrl + Alt + V 快捷键生成接受变量
}
}
String类
String类在java.lang包下,所以使用的时候不需要导包。
String类代表字符串,java程序中所有字符串文字都被实现为此类的实例。
也就是说java程序中所有的双引号字符串,都是String类的对象。
特点
1.字符串不可变,他的值在创建后就不能被更改。
2.虽然String的值是不可变的,但是他们是可以被共享的。
3.字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])。
String构造方法
方法名 | 说明 |
public String() | 创建一个空白字符串对象,不含有任何内容 |
public String(char[] chs){} | 根据字符数组的内容,来创建字符串对象 |
public String(byte[] bys){} | 根据字节数组的内容,来创建字符串对象 |
String s = “sbc”; | 直接复制,内容就是sbc |
String对象的特点
1.new出来的对象每次创建都会建立一个新的存储空间,即便内容相同,但地址不同。
2.以“ ”方式(直接赋值)给出的字符串,只要字符序列相同(顺序和大小写),无论程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。
例:
String s2 = “abc";
String s3 = “abc”;
在上述代码中,JVM会建立一个String对象存在字符串池中,并给s2做参考;第二行则让s3直接参考字符池中的String对象,说明他们本质上是同一个对象。
字符串的比较
使用==比较
基本类型:比较数据值是否相同
引用类型:比较地址值是否相同
字符串是对象,它比较内容是否相同,通过equals()方法来实现。
String中 == 比较地址值、().equals()比较内容值。
Demo:用户登录
package JavaStudyDay11;
import java.util.Scanner;
public class UseerLogin {
public static void main(String[] args) {
//定义两个字符串存储用户名和密码
String user = "dejavu";
String password = "dejavu1118";
//用Scanner类来输入用户名和密码
//用for循环判断登录次数
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入用户名:");
String input_user = sc.nextLine();
System.out.println("请输入密码:");
String input_password = sc.nextLine();
//用equals方法来判断用户名和密码是否相等
if (input_user.equals(user) && input_password.equals(password)) {
System.out.println("登录成功");
break;
} else {
System.out.println("用户名或密码错误,你还有"+ (2-i) +"次机会");
}
}
}
}
Demo:遍历字符串
package JavaStudyDay11;
import java.util.Scanner;
public class StringDemo2 {
public static void main(String[] args) {
//键盘录入字符串
Scanner sc = new Scanner(System.in);
System.out.println("输入想要遍历的字符串:");
String s = sc.nextLine(); //dejavu get better
//使用for循环、length()方法以及charAt方法来遍历字符串
for (int i = 0; i < s.length(); i++) {
System.out.print(s.charAt(i)); //dejavu get better
}
}
}
charAt() 方法用于获取字符串中的每个字符
Demo:判断大小写以及数字在字符串中出现的字数
package JavaStudyDay11;
import java.util.Scanner;
//统计字符次数
//判断大写字母、小写字母、数字出现的次数
public class StringDemo3 {
public static void main(String[] args) {
//定义计数
int count_up = 0;
int count_low = 0;
int count_num = 0;
//键入
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String s = sc.nextLine();
//使用for循环、length()方法以及charAt方法来遍历字符串
for (int i = 0; i < s.length(); i++) {
s.charAt(i);
//判断是否为大写
if(s.charAt(i)>'A' && s.charAt(i)<'Z'){
count_up++;
}
//判断是否为小写
else if(s.charAt(i)>'a' && s.charAt(i)<'z'){
count_low++;
}
//判断是否为数字
else if(s.charAt(i)>'0' && s.charAt(i)<'9'){
count_num++;
}
}
System.out.println("大写字母出现了"+count_up+"次");
System.out.println("小写字母出现了"+count_low+"次");
System.out.println("数字出现了"+count_num+"次");
}
}
Demo:拼接字符串 ArrayToString
package JavaStudyDay11;
public class StringDemo5 {
public static void main(String[] args) {
int[] arr = {11, 18, 12, 17, 10, 16};
String s = concat(arr);
System.out.println(s);
}
public static String concat(int[] arr) {
String s = "";
s += "[";
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
s += arr[i];
} else {
s += arr[i];
s += ", ";
}
}
s += "]";
return s;
}
}
Demo:实现字符串反转
package JavaStudyDay11;
import java.util.Scanner;
//字符串反转
public class StringDemo4 {
public static void main(String[] args) {
//键入字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入要反转的字符串:");
String s = sc.nextLine();
String s1 = reverse(s);
System.out.println(s1);
}
//定义方法实现字符串反转
public static String reverse(String s) {
String ss = "";
for (int i = s.length() - 1; i >= 0; i--) { //从尾到首遍历
ss += s.charAt(i);
}
return ss;
}
}
StringBuilder类
public
方法名 | 说明 |
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
Demo:字符连接plus
package JavaStudyDay11;
public class Stringconcat {
public static void main(String[] args) {
int[] arr = {1,2,3};
String concat = concat(arr);
System.out.println(concat);
}
public static String concat(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i = 0;i<arr.length; i++){
if(i == arr.length-1){
sb.append(arr[i]);
}else{
sb.append(arr[i]);
sb.append(",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
Demo:字符反转plus
package JavaStudyDay11;
import java.util.Scanner;
public class StringReverse {
public static void main(String[] args) {
//键入字符
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
String myReverse = myReverse(line);
System.out.println("反转后为:"+myReverse);
}
//定义方法实现反转
public static String myReverse(String s) {
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String ss = sb.toString();
return ss;
}
}