黑马程序员_java String类小结

------- android培训、java培训、期待与您交流! ----------

String类
字符串是一个特殊的对象,
字符串是常量一旦初始化就不会被改变,只能是新建字符串对象。字符串常量池是在方法区中开辟的。
==与equals()的区别,前者判断的是引用类类型变量即地址,后者判断的是对象地址中的内容。不同对象地址中的内容值是可以相等的。
String类复写了Object类中的equals方法,该方法用于判断字符串对象中的字符串内容是否相同。
String s2=new String("abc")这句话中有两个对象,一个是abc对象,一个是新建对象内容和abc对象内容相同但是地址不同,
String s1="abc"这句话只有一个对象,即abc对象。与上一句地址不同但是地址中的内容是相同的。
String s3="abc"这句话中abc是常量保存在常量池中,与上一句是同一个对象。所以地址相同,内容也是相同的。

String类中的常见功能
1,获取
1.1 字符串的长度,int length()方法获取长度,不同于数组的属性,此处是方法的形式。
1.2 根据索引位置获取位置上的某个字符char charAt(int index)
1.3 根据字符获取该字符在字符串中的位置int indexOf(int ch)此处参数是Ascll码值,返回的是第一次出现的位置。从指定位置开始根据字符获取该字符在字符串中的位置int indexOf(int ch,int fromindex)。根据字符串获取该字符串在指定字符串中的位置,int indexOf(String str);//如果没有找到返回-1
以上方法前都可以加上last前缀从而反向索引,查找最后一次出现的位置。

2,判断
2.1 字符串中是否包含某一个子串boolean contains(str);此处也可以用indexOf(str),为空的时候返回-1,而且此方法不仅可以判断而且可以获取位置。
2.2 字符串是否以某指定内容开头;boolean startWith(str)
2.3 字符串是否为空 boolean isEmpty()、原理是判断字符串长度是否为0.与null不同。
2.4 字符串是否已指定内容结尾。boolean endsWith(str)
2.5 判断字符串内容是否相同equals(str)
2.6 判断内容是否相同并忽略大小写equalsIgnoreCase(str);

3,转换
3.1 将字符数组转换成字符串
构造函数 String(char [])通过构造器创建对象来完成
构造函数 String(char[],offset,count)将字符数组中的一部分转换成字符串。offset偏移为就是起始位,count是元素个数。
静态方法,static String copyValueOf(char[])
3.2 将字符串转换成数组
char[] toCharArray();
3.3 将字节数组转换成字符串
构造函数 String(byte [])通过构造器创建对象来完成
构造函数 String(byte[],offset,count)将字节数组中的一部分转换成字符串。offset偏移为就是起始位,count是元素个数。
3.4 将字符串转换成字节数
byte[] getBytes()
3.5 将基本数据类型转换成字符串 static String valueOf()

字符串和字节数组在转换过程中,时可以指定编码表的。

4,替换
String replace(oldchar,newchar);//如果替换的字符不存在,返回的还是原字符串
String replace(charSquence target,charSquence replacement)//对指定的字符串进行替换,charSquence是字符串接口。

5,切割
String[] split(regex);参数是切割位置的字符。此字符作为切割标识不会出现在切割成的数组中。

6,子串
获取字符串中的一部分,
String substring(beginIndex);//从指定位置开始到结尾
String substring(beginIndex,endIdex)//包含头不包含尾。

7,转换,去除空格,比较
7.1 将字符串转换成大写或者小写
String toUpperCase();
String toLowerCase();
7.2将字符串两端的多个空格去除
String trim();
7.3 按字典顺序比较字符的大小,按Ascill值进行比较,返回差值,如果比较到第一个不同的字符时停止比较,如果都相同返回0.
int compare(string);
对于忽略大小写比较,可以先将字符串全部转成小写再进行比较。

时间: 2024-11-08 11:57:25

黑马程序员_java String类小结的相关文章

黑马程序员_Java基础String类

- - - - - android培训.java培训.期待与您交流! - - - - - - - String是一个对象 String不属于8种基本数据类型(byte, char, short, int, float, long, double, boolean),String是对象,所以其默认值是null. String是一种特殊的对象,有其它对象没有的一些特性,通过JDK发现: public final class String implements java.io.Serializable

黑马程序员_Java异常 Java常用库类

Java异常 1,异常的基本概念 异常是导致程序中断运行的一种指令流,它是在运行时期发生的不正常的情况,在Java中,一切的异常都秉着面向对象的设计思想,所有的异常都是以对象和类的形式存在的. 2,异常类的继承结构 在整个Java的异常结构中,实际上有两个最常用的类,Exception和Error,这两个类分别是Throwable的子类 Exception:一般表示的是程序中出现的问题,可以直接使用try....catch处理 Error:一般之的是JVM的错误,程序中无法处理. 3,Java的

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点

黑马程序员_Java基础加强(下)

8.注解类 注解相当于一种标记,加了注解就等于打上了某种标记,没加就等于没打特殊标记,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记就去干什么事,标记可以加在包.类.字段.方法,方法的参数以及局部变量上. 注解的应用结构图: 为注解增加属性 定义基本类型的属性和应用属性 在注解类中增加String color(); @MyAnnotation(color = "red") 用反射方式获得注解对应的实例对象后,再通过该对象调用属性对应的方法 MyAnno

黑马程序员_Java基础加强(上)

1.静态导入 静态导入是jdk1.5版本以后出现的新特性,一般是指导入静态方法,如:import static java.lang.System.out 是指导入系统输出的静态方法. 例: import static java.lang.System.out //导入java.lang包下的System类的静态方法out public class StaticImport { public static void main(String[] args) { int x=1; x++; out.p

黑马程序员_Java反射机制

一切的操作都将使用Object完成,类,数组的引用都可以使用Object来接收 1,认识Class类 以前要是想知道一个类中的属性,成员变量,方法等等的信息的话,需要通过new这个类的对象才能得到这些信息,但是在Java中,也允许一个实例化对象找到一个类的完整的信息,这个类就是Class类,Class类是继承Object类的. 正常方式:  引入需要的"包.类"名称 >取得实例化对象 反射方式:  实例化对象>得到完整的"包.类"名称 getClass(

黑马程序员_Java IO(下)

1,字符编码 在Java程序的开发中最常见的是ISO8859-1,GBK/GBK2312,unicode,UTF编码. ISO8859-1:属于单字节编码,最多只能表示0-255的字符范围,主要在英文上应用. GBK/GB2312:中文的国际编码,专门用来表示汉字,是双字节编码,如果在此编码中出现中文,则使用ISO8859-1编码,GBK可以表示简体中文和繁体中文,而GB2312只能表示简体中文,GBK兼容GB2312 unicode:Java中使用此编码方式,是最标准的一种编码,使用十六进制进

黑马程序员_Java高新技术

1  JDK5的新特性 1.1 静态导入       在API中那些不需要new对象的类,可以在类文件的开头,import static java.lang.Math.*;这里把Math中的所有的静态方法都导入了,在类中不需要调用Math类就能直接用Math的方法了 package cn.wjd.staticimport; import static java.lang.Math.*; public class StaticImport { public static void main(Str

黑马程序员_Java多线程

- - - - - android培训.java培训.期待与您交流! - - - - - - 进程:正在进行中的程序.其实进程就是一个应用程序运行时的内存分配空间.进程负责的是应用程序的空间的标示. 线程:其实就是进程中一个程序执行控制单元,一条执行路径.线程负责的是应用程序的执行顺序. 一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序. 每个线程在栈区中都有自己的执行空间,自己的方法区.自己的变量. jvm在启动的时,首先有一个主线程,负责程序的执行,