String类相关
来源:互联网 发布:中日友好医院 网络挂号 编辑:程序博客网 时间:2024/05/02 04:49
两种实例化方式:
String str = "Hello" ; //直接赋值
String str = new String("Hello") ;//构造方法
String类对象的两种实例化方式及区别:
直接赋值:只会产生一个字符串对象,并且可以自动入池;
构造方法:会产生两个字符串对象,其中一个将成为垃圾,同时不会自动入池,但是用户可以使用intern()方法手工入池。
即:String str1 = new String("Hello").intern() ;
在Java之中,String类的设计采用的是一种称为共享设计模式的概念。在每一个JVM底层都会存在一个String的字符串对象池(Object Pool),如果用户现在采用了直接赋值的方式声明了一个字符串,那么此字符串会自动的保存在此对象池之中(入池),而后如果用户继续声明了其他字符串变量,但是此字符串的内容正好在对象池之中已经保存了,则不会开辟新的字符串,而是从池之中取出来继续使用。实际上共享设计模式的实现主要依靠的是数组。
String对象比较时“==”和“equals()”的区别:
“==”:表示数值比较,比较的是两个字符串对象的内存地址数值;
“equals()”:表示的是两个字符串的内容。
注:比较时字符串常量写在前面,以防止出现空指向异常。System.out.println("Hello".equals(str)) ;
字符串修改与扩充(StringBuffer)
任何语言都没有提供字符串的定义,都是通过程序自己补充的,所以在Java之中每当定义了一个字符串之后,那么字符串的内容是不可能改变的。在整个的修改过程之中,可以发现字符串的内容本身没有任何的变化。一直在改变的是String对象的引用,而它改变的方式所带来的后果就是会出现垃圾。
如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高
StringBuffer sb = new StringBuffer(str);
sb.append("here");
String str = sb.toString();
String与字符数组
No.
方法名称
类型
描述
1
public String(char[] value)
构造
将全部字符数组变为字符串
2
public String(char[] value, int offset, int count)
构造
将部分字符数组变为字符串,指定开始索引和长度
3
public char charAt(int index)
普通
返回指定索引位置的字符
4
public char[] toCharArray()
普通
将字符串变为字符数组
char c = str.charAt(0) ;
char[] data = str.toCharArray() ; //将字符串变为字符数组
判断某一个字符串中的数据是否由纯数字组成
public staticboolean isNumber(String temp) {
char [] data =temp.toCharArray() ; // 将字符串变为字符数组
for (int x = 0 ; x <data.length ; x ++) {
if (data[x] >'9' || data[x] < '0') { // 不在数字范围
returnfalse ;
}
}
return true ; // 如果没有错误,执行此步
}
String与字节数组
在Java之中使用字节数组有两类情况:数据传输、编码转换。
No.
方法名称
类型
描述
1
public String(byte[] bytes)
构造
将全部的字节数组变为字符串
2
public String(byte[] bytes, int offset, int length)
构造
将部分字节数组变为字符串
3
public byte[] getBytes()
普通
将字符串变为字节数组
4
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
普通
编码转换
字符串比较
No.
方法名称
类型
描述
1
public boolean equals(String anObject)
普通
比较两个字符串的内容,区分大小写
2
public boolean equalsIgnoreCase(String anotherString)
普通
不区分大小写的比较
3
public int compareTo(String anotherString)
普通
比较两个字符串大小
在进行字符串比较的时候最需要说明的是compareTo()方法,这个方法的返回值是一个int型数据,而这个int型的数据一共有三类返回值:大于(>0)、小于(<0)、相等(=0)。
字符串查找
从一个指定的字符串之中查找某一个子字符串是否存在
No.
方法名称
类型
描述
1
public boolean contains(String s)
普通
直接查找子字符串是否存在,JDK 1.5提供的
2
public int indexOf(String str)
普通
从头查找指定字符串位置,如果找不到返回-1
3
public int indexOf(String str, int fromIndex)
普通
从指定位置查找指定字符串的位置
4
public int lastIndexOf(String str)
普通
由后向前查找指定字符串的位置
5
public int lastIndexOf(String str, int fromIndex)
普通
从指定位置由后向前查找
6
public boolean startsWith(String prefix)
普通
判断是否以指定的字符串开头
7
public boolean startsWith(String prefix, int toffset)
普通
从指定位置开始判断是否以指定的字符串开头
8
public boolean endsWith(String suffix)
普通
判断是否以指定的字符串结尾
字符串替换
可以将一个字符串之中的指定内容替换为其他内容,使用方法如下:
No.
方法名称
类型
描述
1
public String replaceAll(String regex, String replacement)
普通
全部替换
2
public String replaceFirst(String regex, String replacement)
普通
替换首个
字符串截取
如果要从一个完整的字符串之中截取部分字符串,则可以采用如下方法完成。
No.
方法名称
类型
描述
1
public String substring(int beginIndex)
普通
由指定位置截取到结尾
2
public String substring(int beginIndex, int endIndex)
普通
截取指定索引范围内的字符串
字符串拆分
按照指定的内容可以将一个字符串拆分为若干个子部分,可用的方法如下:
No.
方法名称
类型
描述
1
public String[] split(String regex)
普通
将字符串全拆分
2
public String[] split(String regex, int limit)
普通
部分拆分,其他不拆分的作为一个整体
如果在进行字符串拆分的过程之中出现了拆不开的情况,那么可以使用“\\”转义。
String str ="192.168.1.1" ;
String result[] = str.split("\\.");其他方法
No.
方法名称
类型
描述
1
public String concat(String str)
普通
字符串连接,与“+”类似
2
public boolean isEmpty()
普通
判断是否是空字符串("")
3
public int length()
普通
字符串长度
4
public String toLowerCase()
普通
字符串转小写
5
public String toUpperCase()
普通
字符串转大写
6
public String trim()
普通
去掉左右空格
字符串变为基本数据类型
有了包装类之中,对开发之中而言,最大的方便之处是可以利用其将字符串变为指定的基本数据类型(在任何时候所有传递的数据都是字符串),下面以几个代码为例:
· String变为int,依靠Integer类的方法:public static int parseInt(String s);
· String变为double,依靠Double类的方法:public static double parseDouble(String s);
·String变为boolean,依靠Boolean类的方法:public static booleanparseBoolean(String s)。例如:
String str ="123" ; // 字符串
int temp =Integer.parseInt(str) ; // 字符串变为int但是在进行此类转换操作的时候,一定要保证字符串中的内容全部由数字所组成,否则会出现数字格式化“NumberFormatException”异常。
String str ="true" ; // 字符串
boolean temp =Boolean.parseBoolean(str) ; // 字符串变为boolean
如果在进行String向boolean数据转型的过程之中,字符串中的内容不是true或者是false,都会统一按照false处理。
基本数据类型变为字符串
做法一:任何的基本数据类型遇见了字符串的相加操作后都变为字符串。
int x = 100 ;
String temp =x + ""; // int变为String 做法二:做法一之中虽然进行了转换,但是会产生垃圾的字符串空间,所以在实际的工作之中,如果要将基本类型变为字符串往往要利用String类的方法:“public static String valueOf(数据类型 b)”。
int x = 100 ;
String temp = String.valueOf(x) ; // int变为String
- String类相关总结
- String()类相关
- String类相关
- String类的相关应用
- String类相关知识总结
- C++ STL string类相关
- String类型的相关类
- Android字符串相关类 - String
- C++ 模拟String类 相关
- String类的相关用法
- String相关
- string 相关
- String相关
- String 相关
- String相关
- String相关
- 【Java String】Java 中的String类相关知识再认识
- 字符串相关类(一)String 类
- postgres 备份所有数据库并还原
- 《iOS Human Interface Guidelines》——Popover
- Android监听是否点击了home键或者锁屏键
- 109 - Convert Sorted List to Binary Search Tree
- ReentrantLock和synchronized两种锁定机制
- String类相关
- lua-table
- 设计模式之访问者模式
- IP---域名对应关系
- 准确率与召回率
- 队列实现的一些问题(scalable, persistent)
- rstp协议在平板上问题
- MySQL - 海量数量下的查询效率提升
- 常见服务器类型及其简单介绍