这篇文章带你学会字符串的日常操作
String 类
字符串在日常生活中无处不在, 所以掌握字符串的使用至关重要.
使用 String 对象存储字符串, String 类位于 java.lang 包中, java.lang 不需要我们手动导入可以直接使用.
敲一敲: String 对象存储字符串
- String s="Hello world";
- String s=new String();
- String s=new String("Hello world");
下面列出一些常用的方法
方法 | 介绍 |
---|---|
length() | 获取字符串中字符的个数 |
equals() | 比较两个字符串对象的内容是否一致 |
equalsIgnoreCase() | 忽略大小写比较 |
toLowerCase() | 转小写 |
toUpperCase() | 转大写 |
concat() | 向字符串后面拼接字符串并返回一个新字符串 |
indexOf() | 搜索第一个出现的字符或字符串,从左往右 |
lastIndexOf() | 与 indexOf 搜索方向相反 |
substring() | 提取指定位置开始的字符串或指定开始和结束之间的字符串 |
trim() | 返回去除字符串前后的空格后的副本 |
split() | 按照指定字符串分隔,返回字符串数组 |
敲一敲: length 方法的使用
- import java.util.Scanner;
- public class DemoLength {
- public static void main(String[] args) {
- Scanner input=new Scanner(System.in);
- System.out.println("请输入用户名:");
- String name=input.next();
- if (name.length()<4) {
- System.out.println("用户名不能小于 4 位");
- }else {
- System.out.println("用户名可以使用, 长度为:"+name.length());
- }
- }
- }
== 和 equals 不能混用,== 判断两个字符串在内存中的地址, 在任何地方使用 new 都会产生新的内存地址.
敲一敲: 体会区别和字符串的不可变性
- public class DemoString {
- public static void main(String[] args) {
- String a="张三";
- String b="张三";//a 与 b 是同一个对象, 未变
- System.out.println(a==b);//true
- System.out.println(a.equals(b));//true
- String c=new String("张三");// 新的字符串对象
- System.out.println(a==c);//false
- System.out.println(a.equals(c));//true
- }
- }
比较两个字符串的值不能使用 == , 应该使用 equals 方法比较
敲一敲: 不考虑大小写比较 1
- import java.util.Scanner;
- // 忽略大小比较方法 1
- public class DemoEquals1 {
- public static void main(String[] args) {
- Scanner input=new Scanner(System.in);
- String str="";
- do {
- System.out.println("继续输入 Yes");
- str=input.next();
- } while (str.toLowerCase().equals("yes")||str.toUpperCase().equals("YES"));
- }
- }
敲一敲: 不考虑大小写比较 2
- import java.util.Scanner;
- public class DemoEquals2 {
- public static void main(String[] args) {
- Scanner input=new Scanner(System.in);
- String str="";
- do {
- System.out.println("继续输入 Yes");
- str=input.next();
- } while (str.equalsIgnoreCase("yeS"));
- }
- }
敲一敲: 对比 + 拼接和 concat() 拼接
- public class DemoConcat {
- public static void main(String[] args) {
- String a="hello";
- String b=a+"world";
- System.out.println(b);
- String c=b.concat("test");//b 不会变
- System.out.println(b);
- System.out.println(c);
- }
- }
敲一敲: indexOf 和 lastIndexOf 的使用
- import java.util.Scanner;
- public class TestIndexOf {
- public static void main(String[] args) {
- System.out.println("请输入邮箱:");
- Scanner input=new Scanner(System.in);
- String email=input.next();
- if(email.indexOf("@")==-1) {
- System.out.println("邮箱格式有误!");
- }
- String text="a@bb@cc";
- System.out.println("indexOf:"+text.indexOf("@"));
- System.out.println("lastIndexOf:"+text.lastIndexOf("@"));
- }
- }
敲一敲: 使用 substring
- import java.util.Scanner;
- public class DemoSubstring {
- public static void main(String[] args) {
- // 获取邮箱用户名
- Scanner input=new Scanner(System.in);
- System.out.println("输入完整邮箱:");
- String email=input.next();
- int index=email.indexOf("@");
- String username=email.substring(0,index);
- System.out.println("用户名:"+username);
- }
- }
敲一敲: 使用 trim
- public class DemoTrim {
- public static void main(String[] args) {
- String text="he llo";
- System.out.println(text.trim());
- }
- }
敲一敲: 使用 split
- public class DemoSplit {
- public static void main(String[] args) {
- String text="hello,world,java";
- String[] result=text.split(",");
- for (int i = 0; i <result.length; i++) {
- System.out.println(result[i]);
- }
- }
- }
StringBuffer 类与常用方法
对字符串频繁修改 (如字符串连接) 时, 使用 StringBuffer 类可以大大提高程序执行效率.
敲一敲: 使用 StringBuffer 拼接字符
- public class DemoStringBuffer {
- public static void main(String[] args) {
- StringBuffer sb=new StringBuffer("hello");
- sb.append("Word");
- System.out.println(sb.toString());
- StringBuffer sb2=new StringBuffer();
- sb2.append("hello");
- sb2.append("Word");
- System.out.println(sb2);
- }
- }
敲一敲: 使用 insert 方法
- import java.util.Scanner;
- public class TestInsert {
- public static void main(String[] args) {
- Scanner input=new Scanner(System.in);
- System.out.println("请输入一串数字:");
- String nums=input.next();
- StringBuffer str=new StringBuffer(nums);
- for (int i = str.length()-3; i>0; i-=3) {
- str.insert(i, ",");
- }
- System.out.println(str);
- }
- }
来源: https://www.cnblogs.com/AIThink/p/9773524.html