标题String常用的成员方法
//连接字符
public String concat(String str);
//判断是否包含某个小串
public boolean contains(String s);
//判断是否以某个小串开头
public boolean startsWith(String s);
//判断是否以某个小串结尾
public boolean endsWith(String s);
//查找目标字符串第一次出现的索引
public int indexOf(String str);
//查找目标字符串最后一次出现的索引
public int lastindexOf(String str);
//替换所有子串
public String replace(String target,String replacement);
//从指定索引开始直到结束截取子串
public String substring(int beginIndex):
//从指定索引开始(包含)直到指定索引结束(不包含)截取子串
public String substring(int beginIndex, int endIndex);
//把字符串转成字符数组
public char[] toCharArray();
//把字符串按照某个分割符分成多个子串
public String[] split(String regex);
//去掉字符串"两端两端两端"的空格
public String trim();
//把字符串转成纯小写
public String toLowerCase();
//把字符串转成纯大写
public String toUpperCase();
String常用成员方法的实例
public class StringDemo {
public static void main(String[] args) {
//String的常见方法
//1.public String concat(String str);//连接字符
String s1 = "Hello";
String s = s1.concat("World");
System.out.println(s);
//说明:
// a.+号可以拼接任意类型,concat只能拼接字符串
// b.从性能出发,concat性能优于+
//2.public boolean contains(String s);//判断是否包含某个小串
String s2 = "HelloJavaWorld";
boolean b2 = s2.contains("Java");
System.out.println(b2);
//3.public boolean startsWith(String s);//判断是否以某个小串开头
//4.public boolean endsWith(String s);//判断是否以某个小串结尾
String s3 = "HelloWorldJava";
boolean b3 = s3.startsWith("Hel");
boolean b4 = s3.endsWith("va");
System.out.println(b3);
System.out.println(b4);
//说明: startsWith判断姓式 endsWith判断文件的后缀
//5.public int indexOf(String str);//查找目标字符串第一次出现的索引
//6.public int lastindexOf(String str);//查找目标字符串最后一次出现的索引
String s5 = "JavaHelloWorldJava";
int index5 = s5.indexOf("Java");
System.out.println(index5);
int index6 = s5.lastIndexOf("Java");
System.out.println(index6);
//说明:如果没有找到,返回-1,此时-1不代表索引,代表没有找到
//7.public char[] toCharArray();//把字符串转成字符数组
String s7 = "HelloJava";
char[] ch7 = s7.toCharArray();
System.out.println(Arrays.toString(ch7));
//8.public String[] split(String regex);//把字符串按照某个分割符分成多个子串
String s8 = "GJK7JB我爱46KFB我爱7HJF89我爱JKN789";
String[] ss = s8.split("我爱");
System.out.println(Arrays.toString(ss));
//说明:这里的分割符不一定是符号,不一定是单个!
//9.public String trim();//去掉字符串"两端两端两端"的空格
String s9 = " Ja va ";
System.out.println("-->"+s9+"<---");
String trim = s9.trim();
System.out.println("-->"+trim+"<---");
//10.public String toLowerCase();//把字符串转成纯小写
//11.public String toUpperCase();//把字符串转成纯大写
String s10 = "HeLloWOrLd";
String lowerCase = s10.toLowerCase();
String upperCase = s10.toUpperCase();
System.out.println("纯小写:"+lowerCase);
System.out.println("纯大写:"+upperCase);
}
}
案例1
需求:请用户从控制台输入一个“Email地址”,程序接收后判断此Email地址中是否包含@符号和.符号,如果全部包含,打印:合法,否则打印:不合法的Email地址。
import java.util.Scanner;
/**
* 请用户从控制台输入一个“Email地址”,
* 程序接收后判断此Email地址中是否包含@符号和.符号,
* 如果全部包含,打印:合法,否则打印:不合法的Email地址。
*/
public class Demo01 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入邮箱地址:");
String Email = sc.next();
// 判断邮箱是否存在"@"符号
if(Email.contains("@")){
// 判断邮箱是否存在"."符号
if(Email.contains(".")){
System.out.println("合法邮箱地址!");
System.out.println(Email);
}else{
System.out.println("邮箱不合法");
}
}else{
System.out.println("邮箱不合法");
}
}
}
案例2
需求:请用户从控制台输入一个java文件的名字,例如:Test.java,请编程实现以下功能:
判断此文件名是否以“.java”结尾,并打印结果
获取此文件中.符号的索引位置,并打印结果
import java.util.Scanner;
/**
* 请用户从控制台输入一个java文件的名字,例如:Test.java,请编程实现以下功能:
* 判断此文件名是否以“.java”结尾,并打印结果
* 获取此文件中.符号的索引位置,并打印结果
*/
public class Demo02 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入一个Java文件名字:");
String next = sc.next();
// 判断文件名是否以".java"结尾
if(next.endsWith(".java")){
System.out.println("java文件:" + next);
// 直接输出"."在文件名中的索引值
System.out.println("其中.的索引位置:" + next.indexOf("."));
}else{
System.out.println("不是Java文件!");
}
}
}
案例3
需求:程序模拟一个论坛发帖的过程,请用户输入一个发帖内容,例如:
“积分看电视了几分我特朗普将反恐文件风IE哦特朗普积分哦忘记特朗普”
请将字符串中所有的”特朗普”替换为"*"符号。
import java.util.Scanner;
/**
* 程序模拟一个论坛发帖的过程,请用户输入一个发帖内容,例如:
* "积分看电视了几分我特朗普将反恐文件风IE哦特朗普积分哦忘记特朗普"
* 请将字符串中所有的”特朗普”替换为"*"符号。
*/
public class Demo03 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入你要发送的内容:");
String next = sc.next();
// 把内容中的"马化腾"替换成"*"
String newNext = next.replace("马化腾", "*");
System.out.println(newNext);
}
}
案例4
需求:程序模拟一个论坛发帖的过程,请用户输入一个发帖内容,例如:
“积分看电视普京了几分我特朗普将反恐文件风IE哦特朗普积分哦忘记普京”
请定义一个关键字数组:
String[] keyArray = {“特朗普”,”普京”};
请将字符串中包含的数组中的关键字替换为*符号。
import java.util.Scanner;
/**
* 程序从控制台接收一个java文件的文件名,例如:test.java,TEST.java,tEst.JAVA,请编程实现以下功能:
* 获取,并打印文件名的第一个字符;
* 获取,并打印文件的后缀名(包括.符号),例如:.java
* 无论原文件名什么样,最终将其转换为:Test.java的形式,打印转换后的文件名。
*/
public class Demo05 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入一个java文件名:");
String next = sc.next();
// 打印文件名第一个字符
String substring = next.substring(0, 1);
System.out.println(substring);
// 打印后缀名
next.substring(next.length() - 5);
// 把格式改为Test.java格式
// 把next转为纯小写
String s = next.toLowerCase();
//把首字符大写
String s1 = substring.toUpperCase();
// 把大写首字母和后面的字符拼接
System.out.println(s1 + s.substring(1));
}
}
案例5
需求:程序从控制台接收一个java文件的文件名,例如:test.java,TEST.java,tEst.JAVA,请编程实现以下功能:
获取,并打印文件名的第一个字符;
获取,并打印文件的后缀名(包括.符号),例如:.java
无论原文件名什么样,最终将其转换为:Test.java的形式,打印转换后的文件名。
import java.util.Scanner;
/**
* 程序从控制台接收一个java文件的文件名,例如:test.java,TEST.java,tEst.JAVA,请编程实现以下功能:
* 获取,并打印文件名的第一个字符;
* 获取,并打印文件的后缀名(包括.符号),例如:.java
* 无论原文件名什么样,最终将其转换为:Test.java的形式,打印转换后的文件名。
*/
public class Demo05 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入一个java文件名:");
String next = sc.next();
// 打印文件名第一个字符
String substring = next.substring(0, 1);
System.out.println(substring);
// 打印后缀名
next.substring(next.length() - 5);
// 把格式改为Test.java格式
// 把next转为纯小写
String s = next.toLowerCase();
//把首字符大写
String s1 = substring.toUpperCase();
// 把大写首字母和后面的字符拼接
System.out.println(s1 + s.substring(1));
}
}
案例6
需求:程序从控制台一次性接收一个学员信息,要求程序必须能正确处理以下几种格式的数据:
“张三,20,男”
" 张三 , 20 ,男"
编程:
定义学员类,可以存储上述数据(姓名String,年龄int,性别char)
定义测试类,创建一个学员对象,从控制台接收一名学员信息,并能正确解析,并将数据存储到学员对象中,最后打印这个学员对象的所有属性的值
// Student类
public class Student {
private String name;
private int age;
private char sex;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
'}';
}
public Student() {
}
public Student(String name, int age, char sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
/**
* 程序从控制台一次性接收一个学员信息,要求程序必须能正确处理以下几种格式的数据:
* "张三,20,男"
* " 张三 , 20 ,男"
* 编程:
* 定义学员类,可以存储上述数据(姓名String,年龄int,性别char)
* 定义测试类,创建一个学员对象,从控制台接收一名学员信息,并能正确解析,并将数据存储到学员对象中,最后打印这个学员对象的所有属性的值
*/
public class Demo06 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入学院信息");
String next = sc.nextLine();
// 把信息中的空格替换成空字符
next = next.replace(" ", "");
// 使用","隔开
String[] split = next.split(",");
String name = split[0];
int age = Integer.parseInt(split[1]);
char sex = split[2].charAt(0);
Student stu = new Student(name,age,sex);
System.out.println(stu);
}
}
案例7
需求:键盘录入QQ号码,验证格式的正确性。
必须是5—12位数字。
0不能开头。
代码实现,效果如图所示:
import java.util.Scanner;
/**
* 键盘录入QQ号码,验证格式的正确性。
* 必须是5—12位数字。
* 0不能开头
*/
public class Demo07 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入qq");
String qq = sc.next();
// 判断qq的长度
if(qq.length() > 5 && qq.length() < 12){
// 判断qq是否以0开头
if(qq.startsWith("0")){
System.out.println("不合法qq");
}else{
System.out.println("这个qq是合法的");
System.out.println("qq:" + qq);
}
}else{
System.out.println("不合法");
}
}
}
案例8
需求:字符串查找。
键盘录入一个大字符串,再录入一个小字符串。
统计小字符串在大字符串中出现的次数。
代码实现,效果如图所示:
import java.util.Scanner;
/**
* 字符串查找。
* 键盘录入一个大字符串,再录入一个小字符串。
* 统计小字符串在大字符串中出现的次数。
* 代码实现,效果如图所示:
*/
public class Demo08 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("输入一个字符串:");
String str1 = sc.next();
System.out.println("在输入一个小字符串:");
String str2 = sc.next();
int count = 0;
// 遍历str1字符串
for (int i = 0; i < str1.length(); i++) {
// 判断str1中是否存在str2
if(str1.contains(str2)){
// 截取str2.length() + str1.indexOf(str2)以后的字符串重新赋值给str1
str1 = str1.substring(str2.length() + str1.indexOf(str2));
count++;
}
}
System.out.println(count);
}
}
案例9
需求:替换某字符串中的某字符串。
键盘录入一个srcStr字符串,再录入一个delStr字符串。
删除该字srcStr符串中的所有delStr字符串。
代码实现,部分效果如图所示:
import java.util.Scanner;
/**
* 替换某字符串中的某字符串。
* 键盘录入一个srcStr字符串,再录入一个delStr字符串。
* 删除该字srcStr符串中的所有delStr字符串。
* 代码实现,部分效果如图所示:
*/
public class Demo09 {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入源字符串:");
String str = sc.next();
System.out.println("请输入要删除的字符串:");
String delete = sc.next();
int count = 0;
// 把str中的delete替换成空字符
String replace = str.replace(delete, "");
for (int i = 0; i < str.length(); i++) {
if(str.contains(delete)){
str = str.substring(delete.length() + str.indexOf(delete));
count++;
}
}
System.out.println("源字符串包含:" + count + "个" + delete);
System.out.println("删除" + delete + "后的字符串为:" + replace);
}
}
案例10
需求:筛选字符串。
定义ArrayList集合,存入多个字符串。
长度大于5的字符串,打印删除后的集合。
代码实现,效果如图所示:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
/**
* 筛选字符串。
* 定义ArrayList集合,存入多个字符串。
* 长度大于5的字符串,打印删除后的集合。
* 代码实现,效果如图所示:
*/
public class Demo10 {
public static Scanner sc = new Scanner(System.in);
public static ArrayList<String> list = new ArrayList<>();
public static void main(String[] args) {
list.add("我爱java");
list.add("java");
list.add("java有趣");
list.add("c++");
list.add("c");
list.add("熟练使用java");
list.add("每日Java");
list.add("~~~~~~~");
System.out.println("源字符串:");
System.out.print("[");
for (int i = 0; i < list.size() - 1; i++) {
System.out.print(list.get(i) + ",");
}
System.out.println(list.get(list.size() - 1) + "]");
for (int i = 0; i < list.size(); i++) {
// 判断元素的长度是否大于5
if(list.get(i).length() > 5){
list.remove(i);
// 每次删除都需要冲原来位置继续往后查找
i--;
}
}
System.out.println("删除后:");
System.out.print("[");
for (int i = 0; i < list.size() - 1; i++) {
System.out.print(list.get(i) + ",");
}
System.out.println(list.get(list.size() - 1) + "]");
}
}