字符串
很多语句都提供对字符串数据类型的处理工具
//比较字符串的大小是否相等用equal
boolean abc = "abc".equals("abc");
//字符串的特殊案例
public class Demo3 {
public static void main(String[] args) {
String str1 = "asd";
String str2 = "asd";
//这种定义的方法是在常量池中定义的
//==比较的是地址,equal比较的是值
System.out.println(str1==str2);//true
boolean equals = str1.equals(str2);
System.out.println(equals);//true
String abc = new String("abc");
String abc1 = new String("abc");
//new会在堆中开辟出一个新的空间,每new一次都会开辟出一个新的空间
//所以两次开辟的空间的地址是不相同的,但是这两个都存储了该数组的字符数组
System.out.println(abc==abc1);//false
boolean equals1 = abc.equals(abc1);
//同理这个也是比较的数值
System.out.println(equals1);//ture
}
}
public class Demo2 {
public static void main(String[] args) {
//1、获取字符串中的字符个数
String a = "aadfshuheb";
int length = a.length();
System.out.println(length);
//2、获取指定位置(下标)上的某个字符,也就是获取某个下表的值
char b = a.charAt(2);
System.out.println(b);
//3、根据字符获取该字符在字符串中第一次出现的位置,
int c = a.indexOf('a');
System.out.println(c);
//indexOf的重载方法,这里需要注意的是下表需要加1
int d = a.indexOf('a', 1);
System.out.println(d);
//indexOf的重载方法
int e = a.indexOf("ab");
System.out.println(e);
//indexOf的重载方法
int f = a.indexOf("fs", 2);
System.out.println(f);
//4、查询指定字符最后依此出现的位置
//这里只是把顺序调换,顺序变成从后往前
String o = "bywjvaka";
int g = o.lastIndexOf('a');
//案例:判断用户输入的字符串是否大于6位,并且字符串必须同时包含数字和字符,且不能出现其他特殊字符,输出ok
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于六位的字符串");
String str = sc.next();
if (str.length()>=6){
int sz = 0;
int zm = 0;
for (int i = 0;i<str.length();i++){
char c1 = str.charAt(i);
//这里如何判断数字和字母要用Character中的方法
if (Character.isLetter(c1)){
zm++;
}if (Character.isDigit(c1)){
sz++;
}
}
System.out.println("数字:"+sz+"字母:"+zm);
if (zm+sz==str.length()){
System.out.println("ok");
}
}else
System.out.println("输入的数字长度不够");
}
}
//字符串中用于判断的方法
public class Demo5 {
public static void main(String[] args) {
String a = "ajygABK";
String b = "AjygABK";
//比较字符串是否相等
boolean equals = a.equals(b);
System.out.println(equals);//false
//比较字符串是否相等,但是忽略大小写
boolean b1 = a.equalsIgnoreCase(b);
System.out.println(b1);//true
}
}
//判断字符串中是否包含指定子串
public class Demo6 {
public static void main(String[] args) {
String a = "abjgyga";
boolean av = a.contains("ab");
System.out.println(av);//true
}
}
//判断字符串是否是空
public class Demo6 {
public static void main(String[] args) {
String a = "";
boolean empty = a.isEmpty();
System.out.println(empty);//true
}
}
//判断是否以指定字符开头
public class Demo7 {
public static void main(String[] args) {
String a = "agyuaywa";
//判断是否以a开头
boolean a1 = a.startsWith("a");
System.out.println(a1);
//判断是否以a结尾
boolean a2 = a.endsWith("a");
System.out.println(a2);
}
}
//String的相关转换方法
public class Demo8 {
public static void main(String[] args) {
//1、将字符数组转换成字符串
char[] a= {'a','c','d','f'};
String s = new String(a);
System.out.println(s);//acdf
//2、将字符数组中的某一部分转换成字符串
String s1 = new String(a, 1, 2);
System.out.println(s1);//cd
//3、将字符串转换成字符数组
String b = "akhuaw";
char[] chars = b.toCharArray();
System.out.println(chars);
//4、把一个字节数组转换成字符串
byte[] c = {'a','d','s','d'};
String s2 = new String(c);
System.out.println(s2);
//5、把一个字符串转换成一个字节数组
String d = "avdatjf";
byte[] bytes = d.getBytes();
for (byte aByte : bytes) {
System.out.println(aByte);
}
//6、将基本数据类型转换成字符串
int f = 12334;
String value = String.valueOf(f);
System.out.println(value);
}
}
//替换
public class Demo9 {
public static void main(String[] args) {
String a = "sbkgagyaq";
//这里的替换并没有改变原值a
String replace = a.replace('a', 'A');
System.out.println(replace);
}
}
//案例——敏感词汇过滤
/*
* 模拟敏感词汇
* 有一批敏感词汇:草 炸弹 杀
* 由用户输入一句话,系统自动判断字符串中是否由敏感词,会自动把敏感词替换成*
* 额外要求:有几个敏感词,就替换几个*
* */
public class Demo10 {
public static void main(String[] args) {
String a = "草";
String b = "炸弹";
String c = "杀";
String[] arr = {a,b,c};
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
for (int i =0;i<arr.length;i++){
String k = "";
for (int j = 0;j< arr[i].length();j++){
k+="*";
}
str = str.replace(arr[i], k);
}
System.out.println(str);
}
}
//切割
public class Demo1 {
public static void main(String[] args) {
String a = "as,ng,eeaby,eia";
//参数里面写以什么进行分割
String[] split = a.split(",");
//此方法的返回值是一个数组
for (String s : split) {
System.out.println(s);
}
}
}
//截取
public class Demo2 {
public static void main(String[] args) {
String a = "abuigkw";
//参数是需要截取的下标
String substring = a.substring(3);
System.out.println(substring);
//此截取的是一定范围内的字符串
String substring1 = a.substring(3, 6);
System.out.println(substring1);
}
}
//转换:将字符串全部转换成大写或小写
public class Demo3 {
public static void main(String[] args) {
String a = "sbagAABHbai";
//转换成大写
String s = a.toUpperCase();
System.out.println(s);
//转换成小写
String s1 = a.toLowerCase();
System.out.println(s1);
}
}
//比较
public class Demo4 {
public static void main(String[] args) {
String a = "a";
String b = "b";
int i = a.compareTo(b);
//如果输出结果是正数说明a>b,反之小于
System.out.println(i);
}
}
//将指定字符串连接到此字符串的结尾
public class Demo5 {
public static void main(String[] args) {
String a = "aiiau";
String b = "aiua";
String concat = a.concat(b);
System.out.println(concat);
}
}
//去除字符串的前后空格
public class Demo6 {
public static void main(String[] args) {
String a = " sbya ";
String trim = a.trim();
System.out.println(trim);
}
}
|