1、现在有字符串:String s1=" SSSCCsdfgsdAX@$#67 ";
String s2=“sssdCCsdfGSDAX@$#67”;
完成以下操作:【默认的是对 s1操作】
(1):保存在字符数组中;
(2):取得第三个元素值;
(3):打印输出该字符串的每个字符;
(4):截取"sd"该子串;
(5):返回"67"的下标位置
(6):返回"gsd"的最后一个下标位置
(7):判断两个字符串是否相等【两种方法操作】
(8):将两个字符串进行连接为一个字符串,s2在前面,s1在后面
(9):去掉s1前后空格
(10):将s1只要是大写字符全部转为小写
(11):判断最后面的字串是不是“67”
(12):判断s2最前面的字串是不是“sss”
public class Test01 {
public static void main(String[] args) {
//对String字符串进行操作,原有的字符串没有改变,而是创建了一个新的对象进行操作
String s1=" SSSCCsdfgsdAX@$#67 ";
String s2="sssdCCsdfGSDAX@$#67";
// 转为字符数组
char[] chars = s1.toCharArray();
//获取下标为2的字符
System.out.println(s1.charAt(2));
//打印字符串中的每一个字符
for(char c:chars){
System.out.print(c+",");
}
System.out.println();
//截取sd
System.out.println(s1.substring(6,8));
//返回67元素下标
System.out.println(s1.indexOf("67"));
//返回gsd的最后一个下标位置
System.out.println(s1.indexOf("gsd")+2);
//判断两个字符串是否相等
System.out.println(s1.equals(s2));//输出true相等
System.out.println(s1.compareTo(s2));//输出0相等
//拼接字符串
System.out.println(s2+s1);
System.out.println(s2.concat(s1));
//去掉前后空格
System.out.println(s1.trim());
//转为小写
System.out.println(s1.toUpperCase());
//判断最后的字符串是否为67
System.out.println(s1.endsWith("67"));
//判断s2前面的字符串是否为sss
System.out.println(s2.startsWith("sss"));
}
}
2、字符串解析,现有一字符串,“卡巴斯基#杀毒软件#免费版#俄罗斯#”,解析出每个元素。
public class Test {
public static void main(String[] args) {
String s="卡巴斯基#杀毒软件#免费版#俄罗斯#";
String[] split = s.split("#");//分割为一个字符串数组
for (String s1:split){
System.out.println(s1);
}
}
}
3、“那车水马龙的人世间,那样地来 那样地去,太匆忙”,第二次出现"那"的位置。
public class Test01 {
public static void main(String[] args) {
String s="那车水马龙的人世间,那样地来 那样地去,太匆忙";
System.out.println(s.indexOf("那", s.indexOf("那"))+1);
}
}
4、有一身份证号,判断此为男还是女,基于此方法,写一个算法,判断一个身份证号为男还是女。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("身份证号");
Scanner scanner = new Scanner(System.in);
String next = scanner.next();
System.out.println(next.charAt(16));
if(next.charAt(17)%2!=0){
System.out.println("女生");
}else {
System.out.println("男生");
}
}
}
5、如下字符串,01#张三#20-02#李四#30-03#王五#40。。。。。。,解析每个人分数多少。样式如下:
01 张三 20
02 李四 30
03 王五 40。并且计算总分。
public class T {
public static void main(String[] args) {
String s="01#张三#20-02#李四#30-03#王五#40";
//使用空格替换#
String replace = s.replace("#", " ");
//以-作为分隔符,将分隔开的字符串作为元素存储在字符串数组中
String[] split = replace.split("-");
//总分
int sum=0;
//遍历字符串数组
for (String s1:split){
System.out.println(s1);//输出元素
String[] split1 = s1.split(" ");//将这个元素中的空格作为分隔符
int a=Integer.parseInt(split1[2]);//确定字符数组中的第三个为分数,将字符串转为int类型
sum+=a;//总分相加
}
System.out.println(sum);
}
}
6、输入一个字符串,将字符串中的所有敏感词替换成**。
敏感词列表:色情,,暴力,操,日。
public class Test06 {
public static void main(String[] args) {
String s="看起来色情的东西,不一定如我们表面所看到的那样,充满暴力," +
"想象我们在一望无际的上操练,就算是太阳高挂的日子也不能例外,那么这种东西也不过是一种调味剂罢了。";
String[] mgc={"色情",,"暴力","操","日"};
for (String s1:mgc){
String replace = s.replace(s1, "**");
s=replace;//将新创建的字符串的地址指向s,在修改后的字符串上进行操作
}
}
}
7、输入一个字符串,判断有多少个字母?多少个数字字符?多少个汉字字符?
import java.util.Scanner;
public class Test07 {
public static void main(String[] args) {
System.out.println("请输入一串字符:");
Scanner scanner = new Scanner(System.in);
String s=scanner.next();//阻塞
char[] chars = s.toCharArray();
int english=0;
int num=0;
int china=0;
for (char c:chars){
if(c<='z'&&c>='a'||c<='Z'&&c>='A'){
english++;
}
if(c<='9'&&c>='0'){
num++;
}
//unicode中汉字对应编码
if(c>0x4300&&c<0x9fbb){
china++;
}
}
System.out.println("英文字母"+english+",数字"+num+",汉字"+china);
}
}
8、歌词:
朋友啊朋友,你可曾想起了我?
如果你正享受幸福,请你忘记我。
朋友啊朋友,你可曾记起了我?
如果你正承受不幸,请你告诉我。
朋友啊朋友。。。
请问“朋友”出现了多少次。
public class Lx08 {
public static void main(String[] args) {
String s= "朋友啊朋友,你可曾想起了我?\n" +
"如果你正享受幸福,请你忘记我。\n" +
"朋友啊朋友,你可曾记起了我?\n" +
"如果你正承受不幸,请你告诉我。\n" +
"朋友啊朋友。。。\n" ;
String[] split = s.split("朋友");
System.out.println(split.length-1);
}
}
9、将字符串“我爱中华人民共和国”,变成一个倒叙的字符串。
public class lx09 {
public static void main(String[] args) {
String s="我爱我的祖国和人民";
char[] chars = s.toCharArray();
for (int i =chars.length-1; i >=0 ; i--) {
System.out.print(chars[i]);
}
}
}
10、学生类:学号,姓名,成绩。
重写equals方法:如果学号相同,返回true。
重写toString方法:返回学生的信息,格式“学号-1001;姓名-张三;成绩-90”。
Student类:
import java.math.BigDecimal;
import java.util.Objects;
public class Student {
public Student() {
}
public Student(BigDecimal studentId, String name, double score) {
this.studentId = studentId;
this.name = name;
this.score = score;
}
private BigDecimal studentId;
private String name;
private double score;
public BigDecimal getStudentId() {
return studentId;
}
public void setStudentId(BigDecimal studentId) {
this.studentId = studentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public boolean equals(Object o) {
//通过判断调用该方法的对象和传递进来的对象地址是否相同
if (this == o) return true;
//判断该对象引用是否为空,判断调用该方法的对象所属类是否与传入对象所属类相等
if (o == null || getClass() != o.getClass()) return false;
//传入对象为object类型,向下转型为Student类型
Student student = (Student) o;
//判断属性值是否相等
//学号属性的数据类型为BigDecimal,调用BigDecimal类中的equals方法比较
return studentId.equals(student.getStudentId()) ;
}
@Override
public String toString() {
return "Student{" +
"学号=" + studentId +
", 姓名='" + name + '\'' +
", 成绩=" + score +
'}';
}
}
测试:
public class test {
public static void main(String[] args) {
BigDecimal bigDecimal = new BigDecimal("123456");
BigDecimal bigDecimal1 = new BigDecimal("123456");
Student student = new Student(bigDecimal, "张三", 90);
Student student1 = new Student(bigDecimal1, "李四", 80);
System.out.println(student.equals(student1));
System.out.println(student.toString());
System.out.println(student1.toString());
}
}