字符串的概述
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. DJANGO-天天生鲜项目从0到1-004-用户模块-个人中心页

    本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...

  2. Flutter日常笔记

    factory修饰的构造方法 表示不是每次返回的都是新创建出来的对象, 可以取内存中已有的, 比如单例模式的书写 每次返回的都是一个实例, 这时要使用factory修饰构造方法 flutter不要求显 ...

  3. ORACLE_19c用户密码登录失败的问题以及ORA-28040

    测试环境19c 本地登录无异常,创建测试用户,电脑Plsql登录提示报错ORA-28040,处理后再次登录提示密码错误,最后重置密码再次登录OK? 通过这个问题再次测试及反思: 1.ORA-28040 ...

  4. java 心跳机制

    心跳机制:就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开. 心跳包 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定 ...

  5. P1359租用游艇(dp+dfs)

    好久真的是好久没有做dp的问题了(QWQ)(我有学过这玩意???) 诶,人生呐! 今天来一个动归- 顺便可以回顾一下dfs. 这个题我觉得审题也非常重要 小可爱dp: #include <bit ...

  6. SpringBoot整合Mail发送邮件&发送模板邮件

    整合mail发送邮件,其实就是通过代码来操作发送邮件的步骤,编辑收件人.邮件内容.邮件附件等等.通过邮件可以拓展出短信验证码.消息通知等业务. 一.pom文件引入依赖 <dependency&g ...

  7. Day04_企业权限管理(SSM整合)

    学于黑马程序员和传智播客联合做的教学项目 感谢 黑马程序员官网 传智播客官网 个人根据教程的每天的工作进度的代码和资料 密码:cti5 b站在线视频 微信搜索"艺术行者",关注并回 ...

  8. 图解HTTP 6/11

    第三章 HTTP报文内的HTTP信息 1.用于http协议交互的信息被称为HTTP报文.请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端 )的叫做响应报文. 2.请求报文的结构 请求行:包 ...

  9. P3270 [JLOI2016]成绩比较 容斥 数论 组合数学 拉格朗日插值

    LINK:成绩比较 大体思路不再赘述 这里只说几个我犯错的地方. 拉格朗日插值的时候 明明是n次多项式 我只带了n个值进去 导致一直GG. 拉格朗日插值的时候 由于是从1开始的 所以分母是\((i-1 ...

  10. 深入探究JVM之类加载与双亲委派机制

    @ 目录 前言 类的生命周期 加载 验证 准备 解析 初始化 案例一 案例二 案例三 案例四 类加载器 类加载器和双亲委派模型 破坏双亲委派模型 第一次 SPI Tomcat OSGI 总结 前言 前 ...