字符串的概述
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第15章笔记的更多相关文章
-
core java 第四章笔记
import java.util.*; public class Employee { private static int nextid = 1; private String name; priv ...
-
java第三章笔记
java的基本程序设计结构: 1. 声明一个变量之后,必须用赋值语句对变量进行显示初始化,千万不能使用未被初始化的变量. 2.在java中不区分变量的声明与定义. 3.当参与/运算的两个操作数都是整数 ...
-
Java第1章笔记
第一章 计算机程序:计算机为完成某些功能产生的一系列有序指令集合. Java技术包括:JavaSE(标准版) JavaEE(企业版) ---JavaME(移动版) 开发Java程序步骤:1.编写 2 ...
-
Java第2章笔记
1.什么是变量:在程序运行过程中它的值是允许改变的量 2.java中常用的数据类型分为四类八种 第一类:整型 int(整数类型) byte(字节类型) short(短整形) ...
-
Java第14章笔记
Java 中无参无返回值和带参带返回值习题 编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. 要求通过定义无参带返回值的方法来实现,返回值为最大年龄 2. 方法中将学生年龄保存在数组 ...
-
Java第12章笔记
如何定义 Java 中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 一般情况下,定义一个方法的语法是: 其中: //方法名为骆驼命名法 1. 访问修饰符:方法允许被访问的权 ...
-
Java第3章笔记
if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容& ...
-
Java第11章笔记
什么是类,什么是对象 举例说明什么是类,什么是对象? 一句话:万物皆对象 类的概念:类是具有相同属性和服务的一组对象的集合. 1.为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个部分 ...
-
《Think Python》第15章学习笔记
目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...
随机推荐
-
Android多线程分析之五:使用AsyncTask异步下载图像
Android多线程分析之五:使用AsyncTask异步下载图像 罗朝辉 (http://www.cnblogs.com/kesalin) CC 许可,转载请注明出处 在本系列文章的第一篇<An ...
-
JavaScript语言精粹笔记
JavaScript语言精粹笔记 掌握语言的每个特性可以让你出风头,但是并不推荐,因为一部分的特性带来的麻烦可能远超本身的价值.正如书中所言,坏的材料并不能雕刻出好的作品,要成为一名更好的程序员,要取 ...
-
HDU 5033 Building --离线+单调栈
题意:给一些建筑物,x表示横坐标,h表示高度,然后查询某些坐标x,问从该点看向天空的最大张角是多大. 解法:离线操作,读入所有数据,然后按x升序排序,对每一个查询的x,先从左到右,依次添加x坐标小于x ...
-
js写个日历
其实我是一个对时间和日期不怎么感兴趣的人,小学的时候感觉时间或者日期那块就让我很晕,因为有时候是100进制有时候是60进制,搞的我对日历一直很不感兴趣,最近不知道为什么想写一个日历了,可想而知,这个玩 ...
-
nginx 安装过程中遇到的问题
安装Nginx时报错 ./configure: error: the HTTP rewrite module requires the PCRE library. 安装pcre-devel解决问题yu ...
-
windows 版Tomcat 7.0的配置
http://hi.baidu.com/liguohei/item/d6ea23ff904f98753d198b24 测试成功,截图 ~~~~~~~~~~~~~~~ 一.安装JDK 1.7 1.添加环 ...
-
[LeetCode#246] Missing Ranges Strobogrammatic Number
Problem: A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked a ...
-
Swift自定义Class实现Hashable
假如有个Bit类,其中含有CGPoint类型的point属性,Class定义如下 class Bit { var point : CGPoint init(point : CGPoint) { sel ...
-
HTML-CSS相关(1)
一 浮动 1.标准流中的块级盒子,宽度将会自动伸展为100%而浮动的块级盒子,宽度不会自动伸展,而是由内容撑开. 2.当一个盒子浮动,标准流中未浮动的其他盒子,将视浮动盒子不存在而占据浮动盒子原来的 ...
-
JSP的几种跳转方式的异同
1 <jsp:foward page="url" /> 服务端跳转,立即跳转,后续语句不会执行: 2 <% response.sendRedirect(" ...