字符串的概述
1.什么是字符串:零个或多个字符组成的有限序列
2.如何使用字符串:(使用字符串分为两步)
1)定义并初始化字符串
2)使用字符,对字符串进行一些处理
// 穿件一个字符串
// 语法
String arhs = “abc”;
// 创建一个空的字符串
String string = new String();
// 创建一个字符串对象Demo
String string = new String(“Demo”);
System.out.println(string);
3.字符串的长度(常用到的地方:密码不能小于n位)
语法:字符串.length();返回字符串的长度
String name = "tom";
if(name.length() > 2){
System.out.println("T");
}else{
System.out.println("F");
}
4.字符串的比较
语法:字符串1.equals(字符串2);
比较两个字字符串是否相等,返回boolean类型的值true or false
String name1 = "tom";
String name2 = "Jie";
if(name1.equals(name2)){
System.out.println("匹配成功!");
}else{
System.out.println("匹配失败!");
}
字符串1 == 字符串2
// name1 = A name2 = A true
// name1 = A name2 = a false
String name1 = "A";
String name2 = "A";
if(name1 == name2){
System.out.println("true");
}else{
System.out.println("false");
} 5.字符串忽略大小写的比较
字符串1.equalsIgnoreCase(字符串2);忽略掉字符串的大小写,相同返回true否则false
String name1 = "ABC";
String name2 = "abc";
if(name1.equalsIgnoreCase(name2)){
System.out.println("true");
}else{
System.out.println("false");
}
6.字符串中大小写的转换
大写转换位小写toLowerCase()方法
// 定义ABC字符串
String name1 = "ABC";
// 使用toLowerCase()方法转换位小写
System.out.println(name1.toLowerCase());
小写转换位大写toUpperCase()方法
// 定义ABC字符串
String name1 = "ABC";
// 使用toUpperCase()方法转换位小写
System.out.println(name1.toUpperCase()); 复杂字符串的处理
1.字符串的链接
使用拼接符“+“
System.out.println(“这是”+”Java”);
2.concat()方法:将一个字符串链接带另一个字符串的后面
语法:字符串1.concat(字符串2)
// 定义字符串ABC
String string1 = "ABC";
// 定义字符串DEF
String string2 = "DEF";
// 使用concat()方法将字符串进行拼接
System.out.println(string1.concat(string2)); 字符串的提取和查询
语法:public int indexOf(int ch): 返回指定字符在字符串中第一次出现的字符,如果此字符串中没有这样的字符,则返回 -1
语法:int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
// 总字符串
String Str = new String("Hello World!java");
// 第一个字符串
String SubStr1 = new String("Hello");
// 第二个字符串
String SubStr2 = new String("java");
System.out.print("查找字符 o 第一次出现的位置 :");
System.out.println(Str.indexOf('o'));
System.out.print("子字符串 SubStr1 第一次出现的位置:");
System.out.println(Str.indexOf(SubStr1));
System.out.print("子字符串 SubStr2 第一次出现的位置 :");
System.out.println(Str.indexOf(SubStr2));
public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
public int lastIndexOf(String str): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
String Str = new String("Hello World!Java");
String SubStr1 = new String("Hello");
String SubStr2 = new String("Java");
System.out.print("查找字符 o 最后出现的位置 :");
System.out.println(Str.lastIndexOf('o'));
System.out.print("子字符串 SubStr1 最后出现的位置:");
System.out.println(Str.lastIndexOf(SubStr1));
System.out.print("子字符串 SubStr2 最后出现的位置 :");
System.out.println(Str.lastIndexOf(SubStr2));
substring() 方法返回字符串的子字符串
语法:public String substring(int beginIndex)

public String substring(int beginIndex, int endIndex)
参数
beginIndex -- 起始索引(包括)。
endIndex -- 结束索引(不包括)。
返回值:子字符串
String Str = new String("Hello World !!! Hello Java");
System.out.print("返回值 :");
System.out.println(Str.substring(4));
System.out.print("返回值 :");
System.out.println(Str.substring(4, 10)); trim() 方法用于删除字符串的头尾空白符。
语法
publicString trim()
参数

返回值
删除头尾空白符的字符串
String Str = new String(" Hello World!!! ");
System.out.print("原始值 :" );
System.out.println( Str ); System.out.print("删除头尾空白 :" );
System.out.println( Str.trim() ); 字符串的拆分
语法:字符串1.split(String separator,int limit);
Separator:可选,标识拆分字符串是使用一个或多个字符8
Limit:可选,该值用来限制返回数组中的元素个数
String words="长亭外古道边芳草碧连天晚风扶柳笛声残夕阳山外山";
String[] printword=new String[100];//接收数组 System.out.println("***原歌词格式***\n"+words);
System.out.println("\n***拆分后歌词格式***");
printword=words.split(" ");//按照空格进行拆分
for(int i=0;i<printword.length;i++){
System.out.println(printword[i]);//打印输出
} 如何使用StringBuffer类
1.生命StringBuffer对象并初始化
//生命一个空的StringBuffer对象
StringBuffer sb = new StringBuffer();
// 生命一个字符串
StringBuffer sb = new StringBuffer(“好好学习,天天向上”); 常用的StringBuffer 类的方法
字符串.toString();将StringBuffe类型的字符串转换位String类型的对象并返回
String sb1 = sb2.toString(); 字符串1.append(字符串2);
将字符串2链接到字符串1后面 字符串1.insert(位置,参数)将参数插入到字符串1的制定位置(int类型)后并返回
参数可以位String的任何类型 String与StringBuffer的区别
简单地说,就是一个变量和常量的关系。
StringBuffer对象的内容可以修改;
而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。
StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符比 String使用 + 操作符添加字符到一个已经存在的字符串后面有效率得多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。
StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。

初始JAVA第十五章String的总结的更多相关文章

  1. “全栈2019”Java第九十五章:方法中可以定义静态局部内部类吗?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. “全栈2019”Java第十五章:Unicode与转义字符

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. “全栈2019”Java第二十五章:流程控制语句中循环语句while

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. 第十五章 String讲解

    package ch15; import java.util.Scanner; public class Test { public static void main(String[] args) { ...

  5. java(第十五章)

    一.字符串类String 1.String是一个类,位于java.lang包中 2.创建一个字符串对象的2种方式: String 变量名=“值”; String 对象名=new String(“值”) ...

  6. “全栈2019”Java第九十四章:局部内部类详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. “全栈2019”Java第十四章:二进制、八进制、十六进制

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. “全栈2019”Java第二十四章:流程控制语句中决策语句switch下篇

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. “全栈2019”Java多线程第三十五章:如何获取线程被等待的时间?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

随机推荐

  1. 手把手撸套框架-ORM框架的选择

    目录 一,为什么选择SqlSugar? 在.net core ORM框架中,能选择的方案其实有很多,包括以下方案: 1,EF-Core 2,Dapper 3,FreeSql 4,SqlSugar 为什 ...

  2. CF940E Cashback 线段树优化DP

    题目描述 Since you are the best Wraith King, Nizhniy Magazin «Mir» at the centre of Vinnytsia is offerin ...

  3. 高阶Pandas知识图谱-《利用Python进行数据分析》

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片. 其他章 ...

  4. SpringBoot-JPA删除不成功,只执行了查询语句

    今天使用JPA自定义了一个删除方法deleteByUserIdAndCommentId发现并没有删除掉对应的数据,只执行了查询语句 Hibernate: select good0_.id as id1 ...

  5. NanoHTTPD服务

    需要导入nanohttpd2.3,jar包 继承NanoHTTPD public class HttpServer extends NanoHTTPD { public HttpServer(int ...

  6. 移动端宽高适配JS

    //定义全局变量 var winWidth = 0; /*窗口宽度*/ var winHeight = 0; /*窗口高度*/ //函数区 //实时获取浏览器窗口大小,当窗口大小变化开始相应操作 fu ...

  7. Debug HashMap

    目录 1,HashMap面试必问 2,Debug源码的心得体会 3,JDK 1.7 3.1 用debug分析一个元素是如何加入到HashMap中的[jdk1.7] 3.2 用debug分析HashMa ...

  8. PHP curl_share_init函数

    (PHP 5 >= 5.5.0) curl_share_init — 初始化一个 cURL 共享句柄 说明 resource curl_share_init ( void ) 允许两个 cURL ...

  9. springboot多数据源启动报错:required a single bean, but 6 were found:

    技术群: 816227112 参考:https://stackoverflow.com/questions/43455869/could-not-autowire-there-is-more-than ...

  10. layui 父页面获取弹窗传递的值 和 父页面传值给子弹窗的方法

    1.父页面获取子页面(弹窗)的值: 现在父页面页面加载方法中定义方法,专门用来获取从子页面的值 $(document).ready(function() { //拿到子窗口中传回的数据 functio ...