菜鸡学习day08
程序员文章站
2022-07-15 16:11:23
...
菜鸡学习day08
package day08;
/*
String类
字符串是常量,不可变,可共享使用
相当于char【】字符数组,但底层原理是byte【】字节数组
创建字符串
三种构造方法
public String();创建空白字符串
public String(char【】 array);根据char【】内容创建
public String(byte【】 array);根据。。。。。。
一种直接创建 String 名称 = “abc”;
字符串常量池(在堆中)
“”内直接创建的字符串在池中,new创建的字符串对象不在池中
对于基本类型,==进行数据比较
对于引用类型,==进行地址比较
字符串内容比较格式
1. a.equals(b)
public boolean equals(Object obj);
比较时若有常量字符串abc,则建议写在前面
2. a.equalsIgnoreCase(b);忽略大小写
与获取相关的常用方法
public int length();获取字符串长度
public String concat(String str);拼接
public char charAt(int index);获取指定位置的单个字符
public int index0f(String str);查找首次出现某字符串的位置,若无返回-1
字符串截取方法
public String substring(int index);截取从参数位置到末尾
public String substring(int begin,int end);截取一部分,不包含end
转换方法
public char【】 toCharArray();转换为字符数组
public byte[] getBytes();获得当前字符串的底层的字节数组??
public String peplace(CharSequence oldString,CharSequence newString);
将部分字符串进行替换
分割方法
public String【】 split(string regex);拆分成多个字符串
注:若按.进行分割,需写为\\.
static静态关键字
如果一个成员变量使用static关键字,则属于类,储存在静态区,多个对象共享同一数据
一旦使用static修饰成员方法,--->静态方法
可以通过对象名/类名称(推荐,与成员方法区分)调用
对于本类当中的静态方法,可以省略类名称
类名称.静态变量;
类名称.静态方法();
注:内存中现有静态内容,再有非静态内容(静态优先于非静态)
因此静态不能访问非静态,不能用this
静态代码块
public class 类名称{
static{
}
}
当第一次用到本类时,静态代码块执行唯一一次
用来一次性对静态变量赋值
Arrays类 util
提供大量静态方法,实现数组操作
public static String toString(数组);将参数数组变成字符串
public static void sort(数组);升序排序,字符串为字母升序
Math数学工具类
public static double abs(double num);求绝对值
public static double ceil(bouble num);向上取整
public static double floor(double num);向下取整
public static long round(double num);四舍五入
Math.PI(圆周率)
*/
import javax.print.DocFlavor;
import java.util.Arrays;
import java.util.Scanner;
public class D0801 {
public static void main(String[] args) {
String str1 = new String();//创建空字符串
System.out.println(str1);
char[] array1 = {'a','b','c'};//abc
String str2 = new String(array1);
System.out.println(str2);
byte[] array2 = {65,66,67};//ABC
String str3 = new String(array2);
System.out.println(str3);
String str4 = "abc";//直接创建
String str5 = "abc";
String str6 = "ABC";
System.out.println(str4.equals(str5));//内容比较
System.out.println(str4.equals(str2));
System.out.println(str5.equalsIgnoreCase(str6));//内容比较忽略大小写
int length = str4.length();//长度
System.out.println("str4长度是:" + length);
String str7 = str4.concat(str5);//拼接
System.out.println("拼接后为:" + str7);
char str8 = str7.charAt(2);//获取指定位置字符
System.out.println("str7的2位置处的字符为:" + str8);
int num = str7.indexOf("bc");//查找字符所在位置
System.out.println("bc首次出现的位置是:" + num);
String str9 = str7.substring(2);//截取到结尾
System.out.println("截取后为:" + str9);
String str10 = str7.substring(2,5);//截取中间
System.out.println("截取后为:" + str10);
char[] str11 = str7.toCharArray();//转换为字符数组
System.out.println(str11);
byte[] str12 = str7.getBytes();
System.out.println(str12);
String str13 = str7.replace("bc","qw");//替换
System.out.println(str13);
String[] array3 = str7.split("a");//分割
for (int i = 0; i < array3.length; i++) {
System.out.println(array3[i]);
}
//-----------------------将数组【1,2,3】拼接成字符串[word1#word2#word3]
int[] array4 = {1,2,3};
String str14 = method1(array4);
System.out.println(str14);
//------------------键盘输入一个字符串,统计字符种类出现次数
Scanner sc = new Scanner(System.in);
System.out.println("输入一个字符串:");
String str15 = sc.next();
method2(str15);
//------------------------------static静态变量
Student stu1 = new Student();
stu1.setName("小明");
stu1.setAge(17);
Student.setRoom("503");
System.out.println("姓名:" + stu1.getName() + " 年龄:"
+ stu1.getAge() + " 教室:" + Student.getRoom());
Student stu2 = new Student();
stu2.setName("小红");
stu2.setAge(16);
System.out.println("姓名:" + stu2.getName() + " 年龄:"
+ stu2.getAge() + " 教室:" + Student.getRoom());
//--------------------Array
int[] array5 = {9,8,7,6,5,4,3,2,1};
String str16 = Arrays.toString(array5);//数组变字符串
System.out.println(str16);
Arrays.sort(array5);//升序
System.out.println(Arrays.toString(array5));
//-------------------将字符串升序排列,倒序打印
String str17 = "423dsa23周[email protected]^&";
char[] ch1 = str17.toCharArray();//转数组
System.out.println(Arrays.toString(ch1));
Arrays.sort(ch1);//升序
System.out.println(Arrays.toString(ch1));
for (int i = 0; i < ch1.length; i++) {//倒序打印
System.out.print(ch1[ch1.length-i-1]);
}
//------------------Math类
double num1 = -3.14;
System.out.println(Math.abs(num1));
System.out.println(Math.ceil(num1));
System.out.println(Math.floor(num1));
System.out.println(Math.round(num1));
//--------------------计算-10.8到5.9之间,绝对值大于6或小于2.1的整数个数
double min = -10.8;
double max = 5.9;
int b = 0;
for (double i = min; i < max; i++) {
double a = Math.abs(i);
System.out.println(a);
if(a > 6 || a < 2.1){
b++;
}
}
System.out.println("符合条件的个数为:" + b);
}
public static String method1(int[] array) {
String str = "[";
for (int i = 0; i < array.length-1; i++) {
str += "word" + array[i] + "#";
}
str += "word" + array[array.length-1] + "]";
return str;
}
public static void method2(String str) {
char[] ch = str.toCharArray();
int a = 0,b = 0,c = 0,d = 0;
for (int i = 0; i < ch.length; i++) {
if(ch[i] >= '0' && ch[i] <='9'){
a++;
}
else if(ch[i] >= 'A' && ch[i] <= 'Z'){
b++;
}
else if(ch[i] >= 'a' && ch[i] <= 'z'){
c++;
}
else{
d++;
}
}
System.out.println("数字个数为:" + a);
System.out.println("大写字母个数为:" + b);
System.out.println("小写字母个数为:" + c);
System.out.println("其他个数为:" + d);
}
}
package day08;
public class Student {
String name;
int age;
static String room;//静态变量
static{ //静态代码块,只执行一次
System.out.println("先执行了静态代码块。");
}
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public static String getRoom() {
return room;
}
public static void setRoom(String room) {
Student.room = room;
}
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;
}
}
上一篇: nginx 配置前后端分离项目