JAVA—常用对象(Random与String)
Random对象:
1.nextInt():在int范围内随机生成一个int数
Random random = new Random();
int num = random.nextInt(); //在int范围内生成一个随机int数
2.nextInt(int bound):生成一个0(包括)到bound(不包括)的随机int数
Random random = new Random();
int num = random.nextInt(3); //生成一个0到3的随机int数,左闭右开
String对象:程序当中所有的双引号字符串都是String类的对象(就算没有new也照样是)
字符串的特点:
1.字符串是常量,内容永不可变【重点】
2.正是因为字符串不可改变,所以字符串是可以共享使用的(即如果两个一样的字符串,共用的是一个对象,不会再次创建)
如果是直接String str = “abc”,如果双引号写的字符串,那么字符串就在堆内存的字符串常量池中(new 的不再常量池中),下次如果还是相同的字符串,会直接引用字符串常量池中的地址,不会再次创建;如下图
String string = "aa";
String string2 = "aa";
//对于引用类型来说:==是进行【地址值】比较
System.out.println(string == string2); //结果是true,证明是一个地址
3.字符串效果上相当于是char[]字符数组,但底层原理是byte[]字节数组
创建字符串常见的3+1中方式
三种构造方法创建:
1.使用空参构造:创建一个空的字符串,不含有任何内容
String s1 = new String();
System.out.println(s1);
2.使用字节数组创建
char[] charArray = {'a','b','c'};
String s2 = new String(charArray);
System.out.println(s2);
3.使用字节数组创建
byte[] byteArray = {97, 98, 99};
String s3 = new String(byteArray);
System.out.println(s3); //输出abc
一种直接创建方法
String s4 = "abc";
字符串常用的方法:
equals():进行内容比较(如果是一个常量一个变量,推荐常量写在前面,因为如果变量写在前面,而变量为null时,程序会报错)
String string = "aa";
String string2 = "aa";
System.out.println(string.equals(string2)); //输出true
equalsIgnoreCase();忽略大小写进行比较内容
String string = "aa";
String string2 = "Aa";
System.out.println(string.equalsIgnoreCase(string2)); //输出true
concat(String str):将当前字符串和参数字符串拼接成为新的字符串
String s1 = "ab";
String s2 = "12";
String concat = s1.concat(s2);
System.out.println(concat);
charAt(int index):获取指定索引位置的单个字符,返回char类型
String s1 = "ab";
char c = s1.charAt(1);
System.out.println(c);
indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有就返回-1
String str = "asdfsdfg110dfg110";
int index = str.indexOf("110");
System.out.println(index);
substring(int index):截取从索引index开始到最后的字符串
String str = "HelloWorld";
String str2 = str.substring(5);
System.out.println(str2); //输出World
substring(int begin ,int end):截取索引从begin到end的字符串(左闭右开)
String str = "HelloWorld";
String str3 = str.substring(4,7);
System.out.println(str3); //输出oWo
toCharArray():将当前字符串拆分为字符数组作为返回值
char[] chars = "Hello".toCharArray();
System.out.println(chars[1]); //输出e
getBytes():获取当前字符串底层的字节数组
String str = "中国";
byte[] bytes = str.getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
replace()?/将所有的老字符串替换成新的字符串,返回替换之后的新字符串
String s1= "HelloWorld";
String s2 = s1.replace("o", "*");
System.out.println(s2); //输出Hell*W*rld
splite():根据正则表达式切割字符串,返回字符串数组
String s = "aaa,bbb,ccc";
String[] split = s.split(",");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}