JAVA学习day05

字符串 String

String 类 应用类型 默认值为null

声明字符串

字符串的拼接:"+"在拼接字符串和数字运算时优先级是一样的,字符串和所有的类型相加(+)后得到的都是字符串

str="123"+new Object();//123+这个对象的toString方法的结果
字符串比较

使用equals方法比较字符串

boolean bool="123".equals("123");//true
String类型中的常用方法:valueOf--将传入的参数转成字符串
String.valueOf('1');
String.valueOf(new Object());
String.valueOf("");
String.valueOf("null");
查找字串出现的位置(index) 找不到返回-1
int index="123456".indexOf("34");
System.out.println(index);
index="123123123".indexOf("1");//0
System.out.println(index);
index="123123123".lastIndexOf("1");//6
System.out.println(index);
获取指定位置的字符
char item="123456".charAt(4);//'5'
System.out.println(item);
截取字符串
str="123456".substring(1);
System.out.println(str);
//包含开始下标,不包含结束下标
str="123456".substring(3, 5);
System.out.println(str);
替换
str="12345634".replace("34", "nb");
System.out.println(str);
str="123123".replaceAll("12","a");
System.out.println(str);
分割字符串
String[] strArr="123123123".split("1");
System.out.println(Arrays.toString(strArr));
strArr="12312312311".split("1");
System.out.println(Arrays.toString(strArr));
字符串长度:length()
int l="123123".length();
System.out.println(l);
for(int i=0;i<str.length();i++) {
            
}
trim 去除"前后"空白位

空白位:空格 \n \r \t

String strC="\n    \r  \t \n  \r   12 3";
System.out.println(strC);
System.out.println("----------------");
System.out.println(strC.trim());
大写 小写 (针对字母)
str="123abc".toUpperCase();//转成大写
System.out.println(str);
str="123ABCabc".toLowerCase();
System.out.println(str);
判断是否是空串
bool="123".isEmpty();//是空返回true,非空返回false
    System.out.println(bool);
if(!str.isEmpty()) {
    //str中有内容就执行此代码
            
}
"123456".startsWith("1");//true
"123456".endsWith("65");//false
    }
public static void test(String str) {
    System.out.println("string");
}
    
public static void test(Object obj) {
    System.out.println();
}
String 对象 定义后就不可改变 常量 private final修饰value数组
字符串常量池 池 容器 重用
字符串怎样加入到常量池中---使用量的方式声明的字符串就会加入到常量池中
int a=12;
String str="abc";
Integer.valueOf("23");
char[] arr= {'a','b','c'};
str=new String(arr);
程序中第一次使用量的形式定义"123",会将这个字符串对象存入字符串常量当中
之后再使用量的形式使用该对象,就执行使用常量池中的对象
String strA="123";
String strB="123";
System.out.println(strA==strB);//true
        
String strC=new String("123");
String strD=new String("123");
System.out.println(strA==strC);//false
System.out.println(strC==strD);//false
        
String strE="12"+"3";//"123"
String strF="1"+"2"+"3";//"123"
String item="12";
String strG=item+"3";//item为变量
String strGG=item+3;
System.out.println((strG==strGG)+"---------");
//str()+"3"
String strH="12"+3;
System.out.println(strA==strE);//true
System.out.println(strA==strF);//true
System.out.println(strE==strF);//true
System.out.println(strA==strG);//false
System.out.println(strA==strH);//true
System.out.println(strC==strG);//false
        
final String aa="12";
String strI=aa+"3";
System.out.println(strA==strI);//true
final String bb=new String("12");
String strJ=bb+"3";
System.out.println(strA==strJ);//false
        
String strK=aa+"3";
intern
str.intern();

返回 str对象在字符串常量池中的副本对象 作用:检查str是否在字符串常量池中存在副本,如果不存在就复制一份存入到常量池中 然后返回常量池中的副本对象 如果已经存在副本对象,则直接返回副本对象 所以 两个字符串 equals为true 那么两个字符串的intern方法相等

System.out.println(str.intern());
strA=new String("123123");
strB=new String("123123");
System.out.println(strA.equals(strB));//true
System.out.println(strA==strB);//false
System.out.println(strA.intern()==strB.intern());//true
String 字符串定义后就不可改变 存在于常量池中
在拼接字符串时不要产生中间串 StringBuilder StringBuffer0
StringBuilder strB=new StringBuilder();
strB.append("123");
strB.append("abc");
strB.append("456");
调用append 往StringBuilder数组中追加字符

StringBuffer线程安全的
System.arraycopy(src, srcPos, dest, destPos, length);
long类型表示时间 1970-1-1 00:00:00 000
时间类型 Date

获取当前时间 --执行时

Date date=new Date();
System.out.println(date);
long time=date.getTime();
System.out.println(time);
​
time=time+2*24*60*60*1000;
date=new Date(time);
System.out.println(date);
时间格式化
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String sdfStr=sdf.format(date);
System.out.println(sdfStr);
        
LocalDateTime ldt=LocalDateTime.now();//不记录时区
ZonedDateTime zdt=ZonedDateTime.now();//记录时区
Object obj=zdt.getZone();
System.out.println(obj);
随机数
double ran=Math.random();//[0,1)之间的随机数
double ranNum=ran*82+8;
        
Random ranObj=new Random();
Random ranObjN=new Random();
int a=ranObj.nextInt();
int b=ranObjN.nextInt();
System.out.println(a+"======"+b);
a=ranObj.nextInt();
b=ranObjN.nextInt();
System.out.println(a+"======"+b);

取整

ranNum=12.5;

//四舍五入

long num=Math.round(ranNum);//13
System.out.println(num);
int intNum=Math.round(12.33f);
System.out.println(intNum);

//向上取整

double ceilNum=Math.ceil(ranNum);//13
System.out.println(ceilNum);

//向下取整

double floorNum=Math.floor(ranNum);//12
System.out.println(floorNum);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值