String、StringBuffer和StringBuilder

  String修饰的是不可变的字符串,而StringBufferStringBuilder类的对象是可以被修改的。

  StringBuffer和StringBuilder 类不同的是StringBuilder 是线程不安全的,但运行速度要比StringBuffer快(性能高);StringBuffer是线程安全的(性能低)。

字符串的定义

String str = "Hello";
//或
String Str2;
str2 = "Hello";
//或
String str3 = new String("Hello");
String str4 = new String(str3);

字符串拼接【concat()】

//加号(+)拼接   耗时高(慢)
String str = "Hello ";
String str2 = "World";
System.out.println(str+str2); //使用concat()方法 耗时低(快)
String str3 = "Hello";
str3 = str3.concat(" World");
str3 = str3.concat(" 你好");
System.out.println(str3);

intern()

  如果字符常量池中已经包含一个等于此String对象的字符串,则返回常量池中字符串的引用,否则,将新的字符串放入常量池,并返回新字符串的引用。

String str1 = "java";
String str2 = new String("java");
System.out.println(str1==str2); // false
System.out.println(str1==str2.intern()); // true
System.out.println(str1.equals(str2)); // true

字符串长度【length()】

String str = "Hello";
int str_len = str.length(); // 获取字符串长度
System.out.println(str_len);

大小写转换

String str = "Hello World";
System.out.println(str.toLowerCase()); //转换成小写,结果为:hello world
System.out.println(str.toUpperCase()); //转换成大写,结果为:HELLO WORLD

去空格【trim()】

String str = "  Hello  ";
String trim = str.trim();
System.out.println(trim); //"Hello"
System.out.println(str.length()); //9
System.out.println(trim.length()); //5

字符串截取【substring()】

注意substring():截取字符串时不是按照字符索引来截取的,而是按字符来截取的。

   substring(int beginIndex,int endIndex):beginIndex【起始索引(包含)】,endIndex【结束索引(不包含)】。

   (截取长度不能超出字符串长度范围)

String str = "Hello World";
String str_sub1 = str.substring(7);
String str_sub2 = str.substring(2,9);
System.out.println(str_sub1); //orld
System.out.println(str_sub2); //llo wor

字符串分隔【split()】

String str = "Hello,World";
String[] split = str.split(","); //split("指定的分隔符");
for(int i = 0;i<split.length;i++){
System.out.println("字符串分割后为:\n" + split[i]);
}

字符串替换【replace()】

  replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串)。

  replaceFirst() 方法用于将目标字符串中所指定的字符串的第一个子字符串替换成新的字符串。

  replaceAll() 方法用于将目标字符串中所指定的字符串的所有子字符串替换成新的字符串。

String str = "Hello world,Hello java";
String replace = str.replace("w","W"); //replace("被替换的字符(串)","替换的字符(串)");
String replaceFirst = str.replaceFirst("Hello","你好");
String replaceAll = str.replaceAll("Hello","你好");
System.out.println(replace); // Hello World,Hello java
System.out.println(replaceFirst); // 你好 world,Hello java
System.out.println(replaceAll); // 你好 world,你好 java

字符串的比较【equals()】

  equals() 方法将两个字符串逐个地进行比较,看每个字符是否相同;相同为true,不同为false。(区分大小写)【常用

  equalsIgnoreCase() 与equals()方法相同,但不区分大小写

  compareTo() 方法基于字符串的Unicode值进行比较(做减法运算)。(如下:“A”的Unicode值为97,“a”的Unicode值为65,故str1.compareTo(str)等于32)

String str1="abc";
String str2=new String("abc");
String str3="ABC";
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // false System.out.println(str1.equalsIgnoreCase(str2)); // true String str="A";
String str1="a";
System.out.println("str1.compareTo(str)的结果是:"+str1.compareTo(str)); // 32
System.out.println("str1.compareTo('a')的结果是:"+str1.compareTo("a")); // 0

字符串查找

根据字符查找

  indexOf() 方法用于返回字符(串)在指定字符串中首次出现的索引位置,如果能找到,则返回索引值,否则返回 -1。

  lastIndexOf()方法用于返回字符(串)在指定字符串中最后一次出现的索引位置,如果能找到则返回索引值,否则返回 -1。

  注意

    indexOf() 方法的查找策略是从左往右查找,如果不指定起始索引,则默认从字符串的开头开始查找。

    lastIndexOf() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。

String str = "Hello World,Hello java";
System.out.println(str.indexOf("e")); // 1 (查找"e"在字符串中第一次出现的位置)
System.out.println(str.indexOf("e",6)); // 13 (从左往右查找,从索引为6开始查找"e"的位置)
System.out.println(str.lastIndexOf("e")); // 13 (查找"e"在字符串中最后出现的位置)
System.out.println(str.lastIndexOf("e",6)); // 1 (从右往左查找,从索引为6开始查找"e"的位置)

根据索引查找【charAt()】

String str = "Hello World";
System.out.println(str.charAt(6)); // w (查找索引为6的字符)

startsWith()

  判断当前字符串是否已指定的参数开始

boolean startsWith = str.startsWith("He");
System.out.println(startsWith);

endsWith()

  判断当前字符串是否已指定的参数结束

boolean endsWith = str.endsWith("d");
System.out.println(endsWith);

Java字符串定义及常用方法的更多相关文章

  1. mysql截取函数常用方法 即mysql 字符串 截取-- - 最后带上java字符串截取规则比较

    常用的mysql截取函数有:left(), right(), substring(), substring_index() 下面来一一说明一下: 1.左截取left(str, length) 说明:l ...

  2. java中String的常用方法

    java中String的常用方法1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len= ...

  3. java基础-Arrays类常用方法介绍

    java基础-Arrays类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Array类的概念 此类包含用来操作数组(比如排序和搜索)的各种方法.需要注意,如果指定 ...

  4. JAVA字符串格式化String.format()的使用

    JAVA字符串格式化-String.format()的使用常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprin ...

  5. java字符串格式化

    转自:JAVA字符串格式化-String.format()的使用(转) 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语 ...

  6. Java字符串进阶

    Java字符串进阶 前言 最常用的对字符串操作的类有三个,分别是String,StringBuilder,StringBuffer,下面将会详细的说说这三个类...... String String类 ...

  7. Java字符串格式化记录

    最近打log的时候用到了字符串的格式化. Java中String格式化和C语言的很类似.把情况都列出来,以后好查询. public static void main(String[] args) { ...

  8. JAVA字符串操作 (转)

    JAVA字符串操作 原帖地址:http://blog.163.com/hn_myj@126/blog/static/50555635200861133942947/ 参考:http://blog.cs ...

  9. 为什么Java字符串是不可变对象?

    转自 http://developer.51cto.com/art/201503/468905.htm 本文主要来介绍一下Java中的不可变对象,以及Java中String类的不可变性,那么为什么Ja ...

随机推荐

  1. element ui table组件自定义合计栏,后台给的数据

    合计的数据是后台传的,所以用table组件自定义一行用来合计 <el-table border fit v-loading.body="listLoading" elemen ...

  2. el-select定义初始值并且可以修改

    [](https://img2018.cnblogs.com/blog/1338470/201811/1338470-20181112152013318-1731627947.png <el-f ...

  3. python mongo存在插入不存在更新,同时指定如果不存在才插入的字段

    python爬虫的任务数据操作的小技巧 好久没写公众号了,最近太忙了,这里就不多说了.直接根据需求上代码,我想这个应该是大家比较喜欢的, 需求 爬取某网站的项目列表页,获取其url,标题等信息,作为后 ...

  4. Android 开发常用工具合集

    在 Android 开发中经常使用到的小功能,用于记录开发的那些事^_^ 1. 获取 release 和 debug 版本的 SHA1 public static String getSHA1(Con ...

  5. End-To-End Memory Networks

    End-To-End Memory Networks 2019-05-20 14:37:35 Paper:https://papers.nips.cc/paper/5846-end-to-end-me ...

  6. java高级开发

    (转载)博客原文链接:https://www.cnblogs.com/java1024/p/8594784.html 一.面试题基础总结 1. JVM结构原理.GC工作机制详解 答:具体参照:JVM结 ...

  7. Apollo简介及项目集成

    1. 产生背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限 ...

  8. Statement.setQueryTimeout(seconds)在家中环境的再次试验 证明此语句还是有效的

    对比实验:https://www.cnblogs.com/xiandedanteng/p/11955887.html 这次实验的环境是T440p上安装的Windows版Oracle11g,版本为: O ...

  9. Activity: launchMode 和 Intent.FLAG_ACTIVITY_CLEAR_TOP

    Activity 的 launchMode: 1. standard: 标准模式 这种启动模式为标准模式,也是默认模式.每当我们启动一个Activity,系统就会相应的创建一个实例,不管这个实例是否已 ...

  10. Vue动态路由 Get传值

    <template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> 我是首页组件 <ul> < ...