String类的常用方法及面试题

  • String是什么?

    • String代表的字符串 表示的字符串的类型

    • String是不可变的
  • String类的常用方法

复制代码
String a = "hello";
//得到索引对应的字母
System.out.println(a.charAt(3));
//判断是否包含
System.out.println(a.contains("v"));
//判断以xxx结束
System.out.println(a.endsWith("h"));
//判断以xxx开始
System.out.println(a.startsWith("s"));
//判断两个字符串内容是否相等 不区分大小写
System.out.println(a.equals("asdfgH"));
//判断两个字符串内容是否相等 忽略大小写
System.out.println(a.indexOf("d"));
//判断字符串是否为空
System.out.println(a.isEmpty());
//最后一次出现的位置
System.out.println(a.lastIndexOf("d"));
//长度
System.out.println(a.length());
//替换
ystem.out.println(a.replace("h", "g"));
//分割字符串
String b="hhh,vvv,ccc,bbb,nnn";
String[] sub=b.split(",");
for(int i=0;i<sub.length;i++) {
System.out.println(sub[i]);
}
//截取字符串 包前不包后
System.out.println(a.substring(2,5));
//转换字符数组
char[] aes=a.toCharArray();
//转小写
System.out.println(a.toLowerCase());
//转大写
System.out.println(a.toUpperCase());
//去除空格 只能去前后空格
System.out.println(a.trim());
//把其他类型转换成String
String bbbS= String.valueOf(5);
复制代码
  • String的内存问题

    • String定义的字符串为一个常量,一旦被赋值,不可被改变

  • 重点:

    • 字符串如果是变量相加,先开空间,再拼接
    • 字符串如果是常量相加,先拼接,然后再常量池找,如果有就直接返回,没有再创建
  • StringBuffer和StringBuilder

    • 可变字符串
    • 二者的区别:前者是线程安全的可变字符串,后者线程不安全
  • 常见方法:

    • 添加
      • append
      • insert
    • 删除
      • deletecharAt
      • delete
    • 替换
      • replace
    • 反转
      • reverse
  • 面试题

1、说说 String、StringBuffer和StringBuilder他们的区别

  • String内容不可变,后两者可变
  • StringBuffer是线程同步的,数据安全,效率低
  • StringBuilder线程不同步,数据不安全,效率高

2、StringBuffer判断是否是回文

  String s="abcdcba";
  StringBuilder sb=new StringBuilder(s);
  String aaa=sb.reverse().toString();
  int bbb=aaa.compareTo(s); //若相等则输出0
  if (bbb==0){
    System.out.println("是");
  }else
    System.out.println("不是");

3、下面的代码将创建几个字符串对象。
    String s1 = new String(“Hello”);
    String s2 = new String(“Hello”);
     答案是 2个对象.

4、写一个方法来判断一个String是否是回文

复制代码
    String bbb="1234321";
    int i;
    for(i=0;i<bbb.length()/2;i++) {
        if (bbb.charAt(i)==bbb.charAt(bbb.length()-1-i)) {
        }else {
            break;
        }
    }
    if (i==a.length()/2) {
        System.out.println("是");
    }else {
        System.out.println("不是");
    }
复制代码

 

posted @   小炸O  阅读(113)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示