系列文章目录
第一章APIday01下StringBuilder的学习
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
一、StringBuilder
StringBuilder append():尾部增加
StringBuilder delete():删除
StringBuilder replace():修改,替换部分
StringBuilder insert():插入StringBuilder reverse()
StringBuilder reverse():反转
public static void main(String[] args) {
//创建一个无参的构造器,构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。
StringBuilder builder = new StringBuilder();
System.out.println(builder.length());
//增
builder.append("wpo");
//将当前的StringBuilder以String的形式输出
//查
System.out.println(builder.toString());
//插
builder.insert(0, 1);
System.out.println(builder);
//换
builder.replace(0,1,"0");
System.out.println(builder);
//删
builder.delete(0,1);
System.out.println(builder);
//改:replace:使用给定 String 中的字符替换此序列的字符串中的字符。
builder.replace(1,4,"我爱我的祖国");
System.out.println(builder);
//构造一个不带任何字符的字符串生成器,其初始容量由 capacity 参数指定。 (初始容量)
builder = new StringBuilder("12345678");
System.out.println(builder.length());
System.out.println();
StringBuilder builder1 = new StringBuilder();
builder1.append("我爱Java")
.insert(6,",Java爱我!!!")
.replace(6,7,"。")
.delete(builder1.length()-1,builder1.length());
System.out.println(builder1);
//反转
System.out.println(builder1.reverse());
}
二、正则表达式
1.理论知识
2.String支持的正则表达式
- Boolean matches(String regex)匹配,使用给定的正则表达式验证当前字符串的格式是否符合要求,若符合则返回true,不符合则返回false
代码如下(示例):
public static void main(String[] args) {
System.out.println("请输入一个邮箱:");
Scanner sc = new Scanner(System.in);
String email = sc.next();
/*
用户名@域名.后缀
[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+
*/
String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
boolean match = email.matches(regex);
System.out.println(match ? "是邮箱" : "不是邮箱");
}
//例子:
System.out.println("请输入一个网址:");
String url = sc.next();
String regex1 ="^(http:\\/\\/|https:\\/\\/)?[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}([\\/\\w.-]*)*\\/?$";
boolean match2 = url.matches(regex1);
System.out.println(match2?"是一个网址":"不是一个网址");
- String[] split(String regex)拆分满足该正则表达式的部分,其余部分每段以数组形式返回
代码如下(示例):
public static void main(String[] args) {
System.out.println("请输入一个邮箱:");
Scanner sc = new Scanner(System.in);
/**
* String支持正则表达式二
* String[] split(String regex)
* 将当前字符串按照满足正则表示的部分进行拆分,将拆分处的每段内容以数组形式返回
*/
String line = sc.next();
String[] data = line.split("[0-9]+");
//输出长度
System.out.println(data.length);
System.out.println(Arrays.toString(data));
//.比较特殊
//也就是说在显示中想要表示个.在正则表达式中就要写\.,而在Java中要写\\.才能表示出正则表达式中的\.
String line2 = "abc.def.ghi";
data = line2.split("\\.");
//[abc, def, ghi]
System.out.println(Arrays.toString(data));
//同理=+也一样
line2 = "abc=+fff=+eee";
data = line2.split("=\\+");
//[abc, fff, eee]
System.out.println(Arrays.toString(data));
//去除=
line2 = "abc=fff=eee";
data = line2.split("=");
//[abc, fff, eee]
System.out.println(Arrays.toString(data));
//如果去除连续的=
line2 = "abc=+====fff===========+eee";
data = line2.split("=+");
//[abc, +, fff, +eee]
System.out.println(Arrays.toString(data));
}
- replaceAll(String regex,String replacement)将满足正则表达式的内容换成对应的字符串。
代码如下(示例):
public static void main(String[] args) {
String line = "abc123def456efi";
/*
将当前字符串中的连续数字部分替换为#
*/
String str = line.replaceAll("[0-9]+","#");
System.out.println(str);
//将当前字符串中的数字部分替换为#
str = line.replaceAll("[0-9]","#");
System.out.println(str);
}
点比较特殊,在字面上中想要表示点时,正则表达式中就要写\.,而在Java中要写\\.才能表示出正则表达式中的\.
同样的,正则表达式中\w在java中要写\\wjava才可以识别。
三、Object类(超类)
- 在继承的关系下,位于所有类的顶端
- Object类可以指向任何类型的对象
- 常用的方法
import java.util.Objects;
/*
java中所有的类都继承自object
当我们定义的类没有使用extends显示的继承一个类是,编译器编译是会补充extends objece
*/
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
@Override
public String toString() {
return "Point{" +
"x=" + x +
", y=" + y +
'}';
}
@Override
public boolean equals(Object o) {
//是否为同一个对象,即new的名字是不是完全一样
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Point point = (Point) o;
return x == point.x && y == point.y;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
}
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了StringBuilder的使用,而StringBuilder提供了大量能使我们快速便捷地处理数据的函数和方法。