String的20个方法

面试题

1、new和不new的区别

String A="OK";
String B="OK";//会去常量池查找有没有“Ok”这个常量,没有就在常量池创建
String C=new String("OK");
String D=new String("OK");//每次new都是创建一个新地址

不new涉及到内存常量池查找机制

2、String、StringBuffer、StringBuilder的区别

  1. String和StringBuffer/StringBuilder区别

    StringBuffer/StringBuilder创建时会预留16个缓冲区,当缓存区满了,会按照(当前大小+将要存入的个数)*2规则扩容

    String不会预留,每次满了,创建新数组并复制过去,较慢

  2. StringBuffer、StringBuilder的区别

    单线程和多线程,StringBuffer支持多线程,多线程中每次只让一个线程访问,效率低,但是是安全的,不会出现并发错误

    StringBuilder允许多个线程同时访问,效率高,但也很容易出问题

方法

返回类型 方法名 作用
int length() 字符串中字符的个数
byte[] getBytes() 字符串转成字节类型数组(注意中英文,中文为负数两个字节)
char[] toCharArray() 字符串转成char类型数组
String split(String str) 字符串按照指定内容从中间劈开,这个指定的内容消失
boolean equals(String str) (区分大小写)判断两个字符串的内容是否相同(需要数据类型相同再比较,即使内容相同),尽量把固定内容放前面
boolean equalsIgnoreCase() 忽略大小写的equals()比较
boolean contains(String str) 判断字符串中是否有str子字符串
boolean startsWith(String pre) 判断字符串是否以pre开头
boolean endsWith(String suf) 判断字符串是否以suf结尾
String toUpperCase() 字符串转大写
String toLowerCase() 字符串转小写
String replace(String,String) 把一个字符串的内容全部替换成指定内容
String replaceAll(String,String) 把一个字符串的内容全部替换成指定内容(支持正则)
String replaceFirst(String,String) 将字符串中第一个出现的某个内容替换成指定内容
String trim() 去除字符串的前后空格
String substring(int x ,int y) 从下标x截取到下标y-1个元素
String substring(int x) 从下标x截取到最后
char charAt(int index) 返回index下标对应的元素
int indexOf(String str) 找到第一个str的下标
int lastIndexOf(String str) 找到最后一个str的下标

String的20个方法的更多相关文章

  1. Java中String类的format方法使用总结

    可参考: http://www.cnblogs.com/fsjohnhuang/p/4094777.html http://kgd1120.iteye.com/blog/1293633 String类 ...

  2. windows中java读目录空格变成%20 处理方法

    URL url = Thread.currentThread().getContextClassLoader().getResource(""); String path = ur ...

  3. String中的“equal方法”和“==”

    二话不说,先来说下重写的事情: 在Java中,String .Math.还有Integer.Double....等这些封装类重写了Object中的equals()方法,让它不再比较其对象在内存中的地址 ...

  4. 小白基础Python重要的字符串详解String的内置方法

    String的内置方法: st='hello world  {name} is {age}'  {}  特殊内容需要识别format print(st.count('1')) 统计元素个数 print ...

  5. Javascript 中 with 的替代方案和String 中的正则方法

    这几天在升级自己的MVVM 框架,遇到很多小问题,就在这里统一解决了. with 语法 在代码中,要执行这么一个函数 function computeExpression(exp, scope) { ...

  6. 关于JAVA的String类的一些方法

    一.得到字符串对象的有关信息 1.通过调用length()方法得到String的长度. String str=”This is a String”; int len =str.length(); 2. ...

  7. String equals()方法使用以及子串加密

    String equals()方法的实现方法: 名称 说明 String.Equals (Object) 确定此 String 实例是否与指定的对象(也必须是 String)具有相同的值. Strin ...

  8. C++ string 类的 find 方法实例详解

    1.C++ 中 string 类的 find 方法列表 size_type std::basic_string::find(const basic_string &__str, size_ty ...

  9. java.lang.String 类的所有方法

    java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...

随机推荐

  1. ctfhub技能树—RCE—过滤cat

    打开靶机 查看页面信息 构造payload 127.0.0.1 || ls 题目提示过滤了cat,但我还是想试试 果然不行 网页访问没有结果,应该和上题一样被注释了,使用和同样的方法进行解题 利用命令 ...

  2. JVM 判断对象已死,实践验证GC回收

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 提升自身价值有多重要? 经过了风风雨雨,看过了男男女女.时间经过的岁月就没有永恒不变 ...

  3. Django--虛擬環境Virtualenv的安裝使用

    Django--虛擬環境Virtualenv的安裝使用 本次隨筆只要記錄在windows下安裝virtualenvwrapper,以及簡單的使用命令. virtualenvwrapper的安裝     ...

  4. Spring Security 实战干货:分布式对象SharedObject

    1. 前言 在上一篇我们对AuthenticationManager的初始化的细节进行了分析,其中里面有一段代码引起了不少同学的注意: ApplicationContext context = htt ...

  5. Django 模型(数据库)-cmd下的操作

    Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py ...

  6. 编程小技巧之 Linux 文本处理命令(二)

    合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也.合理的利用 Linux 的命令行工具,可以提高我们的工作效率. 本篇文章是<Linux 文本处理命令> 续篇,在前文的基础上再介 ...

  7. logging philosophy 日志哲学

    Go kit - Frequently asked questions https://gokit.io/faq/ Logging - Why is package log so different? ...

  8. Ubuntu16 安装 OpenSSH-Server

    Ubuntu16.04 桌面版默认是没有安装 SSH 服务的,需要手动安装服务: 更新源:sudo apt-get update 安装服务:sudo apt-get install -y openss ...

  9. 一个关于ExecutorService shutdownNow时很奇怪的现象

    我们知道很多类库中的阻塞方法在抛出InterruptedException后会清除线程的中断状态(例如 sleep. 阻塞队列的take),但是今天却发现了一个特别奇怪的现象,先给出代码: publi ...

  10. 在nodejs中创建cluster

    目录 简介 cluster集群 cluster详解 cluster中的event cluster中的方法 cluster中的属性 cluster中的worker 总结 在nodejs中创建cluste ...