Java学习笔记----字符串、数组

Java语言基础、字符串、数组


一、字符串

1 String:

不可变每次操作会创建一个新的String对象。频繁操作带来开销较大。

String操作:

String str1 = "Hello";
String str11 = "Hello";
​
str1.equals(str11)          //比较值是否相同  ----->true
str1 == new String("Hello") //比较对象的引用是否相同-->False
str1.charAt(1)              //返回的是索引为1的字符----->e
str1.length()               //字符串长度----->5
str1.substring(1, 4)        //截取字符串1-4----->ell
str1.toCharArray()[1]       //将字符出啊你转化为字符数组--->e
str1.concat("e")            //将给定字符串拼接到末尾->Helloe
str1.endsWith("o")          //str1是否是以o结尾//--->true
str1.getBytes()             //使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
str1.indexOf("e")           //返回e所在的索引--->1
char [] strs = new char[4]; //创建字符数组
str1.getChars(1,4,strs,1);  //将str1的1-4复制到strs中从索引1开始 ----->[,e,l,l]
str1.replace("e", "E")      //把e替换为E----->HEllo
"hhhh".replaceFirst("h", "H")//替换第一个h为H--->Hhhh
"hhhh".replaceAll("h", "H")  //替换h为H--->HHHH
"he,llo".split(",")    //从,分割字符串为一个数组--->[he,llo]
str1.toLowerCase()           //将str1转换为小写--->hello
str1.toUpperCase()           //将str1转换为大写--->HELLO

2 StringBuffer:

StringBuffer是线程安全的,锁的获取和释放会带来额外的系统开销。创建对象会创建一个容量为16的字符数组。

StringBuffer操作:

StringBuffer str2 = new StringBuffer(); //不加长度默认创建的字符缓冲区容量为16字符
StringBuffer str3 = new StringBuffer(10);//加上长度创建的字符缓冲区容量为10字符
StringBuffer str4 = new StringBuffer(“你好”);//创建的字符缓冲区容量为18(16+你好)
str2.capacity()         //返回字符串容量大小--->16
str4.append("啊!")      //在你好后面追加字符串啊!--->你好啊!
str4.charAt(1)          //返回索引为1的字符--->好
str4.delete(0,1)        //删除从索引0开始长度为1--->好
str4.insert(1, "真")    //在str4的1出插入真--->你真好
str4.substring(1)       //从1开始截取---->好
str4.indexOf("好")      //好所在的索引--->1
    
StringBuffer str5 = new StringBuffer("abcdefg");
str5.reverse()          //倒序输出gfedcba
str5.substring(0,2)     //从0开始截取长度为2--->ab
str5.replace(1, 3, "aaaa")//替换1-3之间的为aaa--->aaaaadefg
str5.setCharAt(0,'c')   //设置索引为0的为ccbcdefg
str5.length()           //长度--->7
str5.toLowerCase()      //将str5转换为小写
str5.toUpperCase()      //将str5转换为大写

3 StringBuilder:

StringBuilder的线程不安全,效率比Buffer高。创建对象会创建一个容量为16的字符数组。

-------StringBuilder操作类似Buffer--------区别是在相同的方法上少了synchronized关键字

4 总:

StringBuilder,StringBuffer内部维护的是字符数组,每次的操作都是改变字符数组的状态,避免创建大量的String对象

一、数组

数组创建的三种方式

int[] a1 = new int[10];
int[] a2 = {1, 2, 3};
int[] a3 = new int[]{1, 2, 3};

多维数组创建方式

String[][] stra1 = new String[2][3];
String[][] stra2 = new String[2][];
String[][] str3 = {{"1", "2", "3"},{"1", "2"}};
String [][] str4 = new String[][]{{"1", "2", "3"},{"1", "2"}};

数组操作:

System.out.println(a2.length);   //a2长度
System.out.println(Arrays.equals(a2,a3)); //比较两个数组--->true
a2.equals(a3) //比较的为对象---->false
Arrays.asList(a2)//转换为List
Arrays.sort(a2) //排序
Arrays.binarySearch(a2, 1)//在a2中查找1所在的索引
Arrays.toString(Arrays.copyOf(a2, 10))//复制a2到一个长度为10的新数组中---->[1, 2, 3, 0, 0, 0, 0, 0, 0, 0]

数组遍历:

1、for循环

for (int i = 0;i<a2.length;i++){
    System.out.println(a2[i]);
}
​

2、foreach

for (int i :a2){
    System.out.println(i);
}

3、静态输出(无操作)

Arrays.toString(a2)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值