API
- API:Application Programming interface应用程序编程接口
- Java API:指JDK中提供的各种功能的Java类
Scanner
- next()方法:遇到空格就不再录入数据了
- nextLine()方法:可以将数据完整的接收过来
注意:nextInt()和nextLine()方法配合使用的时候,nextLine()方法就没有键盘录入的机会了。
建议:后边如果有键盘录入数据的时候,有数字和字符串一起接收,建议使用next()方法接收字符串
String
- String类代表字符串,Java程序中所有的双引号字符串,都是String类的对象
- 字符串不可变,它的值在创建之后不能被修改,虽然String的值是不可变的,但是它们可以被共享
- 注意:== 号 字符串的比较
1.基本数据类型:比较的是具体的值
2.引用数据类型:比较地址值 - equals()方法:比较字符串对象它们的内容是否相同,将此字符串与指定的对象进行比较
String常用方法
方法名 | 说明 |
---|
public boolean equals(Object anObject) | 比较字符串内容,严格区分大小写 |
public boolean equalsIgnoreCase(String anotherString) | 比较字符串的内容,忽略大小写 |
public int length() | 返回此字符串的长度 |
public char charAt(int index) | 返回指定索引处的char值 |
public char[] toCharArray() | 将字符串拆分为数组后返回 |
public String substring(int beginIndex,int endIndex) | 根据开始和结束索引进行截取,得到新的字符串(包含头,不包含尾) |
public String substring(int beginIndex) | 从传入的索引处截取,截取到末尾,得到新的字符串 |
public String replace(CharSequence target,CharSequence replacement) | 使用新值,将字符串中的旧值替换,得到新的字符串 |
public String[] split(Sting regex) | 根据传入的规则切割字符串,得到字符串的数组 |
代码
用户登录
package cn.cdw.demo;
import java.util.Scanner;
public class Demo26 {
public static void main(String[] args) {
String name = "小明";
String password = "123";
login(name, password);
}
public static void login(String name, String password) {
int count = 3;
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入用户:");
String n = scanner.nextLine();
System.out.print("请输入密码:");
String p = scanner.nextLine();
if (n.equals(name) && p.equals(password)) {
System.out.println("登录成功");
break;
} else {
System.out.println("登录失败,近日你还有" + (count - 1) + "次机会");
count--;
}
if (count == 0) {
System.out.println("登录失败,今日登录次数已用完,请明天再来登录,谢谢");
break;
}
}
}
}
拆分字符串
package cn.cdw.demo;
import java.util.Arrays;
import java.util.Scanner;
public class Demo27 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String string = scanner.nextLine();
toChar(string);
System.out.println("============================================");
toCharArray(string);
}
public static void toChar(String string) {
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
System.out.println(c);
}
}
public static void toCharArray(String string) {
char[] chars = string.toCharArray();
System.out.println("该字符串的每个字符在数组中为:" + Arrays.toString(chars));
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
}
}
统计一个字符串的大写字母,小写字母,数字和其它字符的出现次数
package cn.cdw.demo;
import java.util.Scanner;
public class Demo28 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一段字符串:");
String string = scanner.nextLine();
method(string);
}
public static void method(String string) {
int sz = 0;
int dx = 0;
int xx = 0;
int other = 0;
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
if(c >= '0' && c <= '9'){
sz++;
} else if (c >= 'A' && c <= 'Z') {
dx++;
} else if (c >= 'a' && c <= 'z') {
xx++;
}else {
other++;
}
}
System.out.println("出现数字个数:" + sz);
System.out.println("出现大写字母个数:" + dx);
System.out.println("出现小写字母个数:" + xx);
System.out.println("出现其他字符个数:" + other);
}
}
手机号隐私处理
package cn.cdw.demo;
import java.util.Scanner;
public class Demo29 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个手机号:");
String string = scanner.nextLine();
method(string);
}
public static void method(String phone) {
String s1 = phone.substring(0, 3);
String s2 = phone.substring(7);
System.out.println("处理后的手机号码:" + s1 + "****" + s2);
}
}
敏感词替换
package cn.cdw.demo;
import java.util.Scanner;
public class Demo30 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一段字符串:");
String string = scanner.nextLine();
method(string);
}
public static void method(String string) {
String str = string.replace("TMD", "***");
System.out.println(str);
}
}
字符的切割
package cn.cdw.demo;
import java.util.Arrays;
import java.util.Scanner;
public class Demo31 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一段字符串:");
String string = scanner.nextLine();
method(string);
}
public static void method(String string) {
String[] split = string.split(",");
System.out.println("切割后保存到数组中为:"+Arrays.toString(split));
System.out.println("==================================================");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
}
}
StringBuilder
- StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器
- 作用:提高字符串的操作效率
StringBuilder的常用方法
方法名 | 说明 |
---|
public StringBuilder append(任意类型) | 添加数据并返回对象本身 |
public StringBuilder reverse() | 返回相关的字符序列 |
public intlength() | 返回长度(字符出现的个数) |
public String toString | 通过toString()就可以把StringBuilder转换为String |
StringBuilder和String的区别
- String:内容是不可变的
- StringBuilder:内容是可变的
代码
判断字符串是否是一个对称字符串
package cn.cdw.demo;
import java.util.Scanner;
public class Demo32 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一段字符串:");
String string = scanner.nextLine();
method(string);
}
private static void method(String string) {
StringBuilder stringBuilder = new StringBuilder(string);
StringBuilder reverse = stringBuilder.reverse();
String s = reverse.toString();
if (s.equals(string)) {
System.out.println("是对称字符串");
}else {
System.out.println("不是反转字符串");
}
}
}
拼接字符串
package cn.cdw.demo;
public class Demo33 {
public static void main(String[] args) {
int[] arr = {342, 12, 666, 23, 55};
method(arr);
}
public static void method(int[] arr) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
stringBuilder.append(arr[i] + "]");
}else {
stringBuilder.append(arr[i] + ",");
}
}
String str = stringBuilder.toString();
System.out.println("处理后的数据为:" + str);
}
}