String

在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

**使用new创建对象,和不使用new创建对象的区别:**使用new创建对象,会直接在堆的字符串常量池内存区申请一块内存空间,使用完毕后会被GC回收。而不使用new创建对象,首先在字符串常量池内存区中查找是否有该字符串,如果有,那么创建的变量即为该字符串的引用,不会开辟新的内存空间。

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。

java常见方法函数的实例,
其中包括:
1、字符串比较compareTo、compareToIgnoreCase
2、字符串查找indexOf、lastIndexOf
3、删除字符串
4、字符串替代replace、replaceAll
5、字符串反转reverse
6、字符串转变大小写toUpperCase、toLowerCase
7、去掉首位空格trim
8、是否包含某字符/字符串contains
9、返回指定位置字符charAt

public static void main(String args[]){
    String str1 = "Hello World";
    String str2 = "Hello World";
    String str3 = "hello world";
    String str4 = " hello world ";
    //字符串比较字符串比较compareTo(返回的是int),0相等,复数小于,正数大于
    System.out.println("r1 : " + str1.compareTo(str2));
    //字符串比较字符串比较compareTo(返回的是int),0相等,复数小于,正数大于
    System.out.println("r2 : " + str1.compareTo(str3));
    //字符串比较compareToIgnoreCase,忽略大小写。0相等,复数小于,正数大于
    System.out.println("r3 : " + str1.compareToIgnoreCase(str3));
    //字符串查找indexOf,返回的是找到的第一个的位置,没找到返回-1。从0开始
    System.out.println("r4 : " + str1.indexOf("o"));
    //查找字符串最后一次出现的位置lastIndexOf
    System.out.println("r5 : " + str1.lastIndexOf("o"));
    //删除字符串中的一个字符,字符串从0开始的 substring(a, b)返回指定起始位置(含)到结束位置(不含)之间的字符串
    System.out.println("r6 : " + str1.substring(0, 5) + str1.substring(6));
    //字符串替换,替换所有
    System.out.println("r7 : " + str1.replace("o", "h"));
    //字符串替换,替换所有
    System.out.println("r8 : " + str1.replaceAll("o", "h"));
    //字符串替换,替换第一个
    System.out.println("r9 : " + str1.replaceFirst("o", "h"));
    //字符串反转
    System.out.println("r10 : " + new StringBuffer(str1).reverse());
    //字符串分割
    String [] temp = str1.split("\\ ");
    for (String str : temp){
        System.out.println("r11 : " + str);
    }
    //字符串转大写
    System.out.println("r12 : " + str1.toUpperCase());
    //字符串转小写
    System.out.println("r13 : " + str1.toLowerCase());
    //去掉首尾空格
    System.out.println("r14 : " + str4.trim());
    //是否包含,大小写区分
    System.out.println("r15 : " + str1.contains("World"));
    //返回指定位置字符
    System.out.println("r16 : " + str1.charAt(4));
}

结果:
在这里插入图片描述
关于类型转换,对象常见的两个方法是toString()和valueOf()。

1.toString()方法返回反映这个对象的字符串表示。
在进行String类与其他类型的连接操作时,自动调用toString()方法

2.valueOf()方法。如果存在任意原始值,它就默认将对象转换为表示它的原始值;对象是复合值,而大多数对象无法真正表示为一个原始值,因此默认的valueOf()方法简单地返回对象本身,而不是返回一个原始值。

toString()和valueOf()的主要不同点在于
1、toString()返回的是字符串,而valueOf()返回的是原对象

2、由于undefined和null不是对象,所以它们toString()和valueOf()两个方法都没有

3、数值Number类型的toString()方法可以接收转换基数,返回不同进制的字符串形式的数值;而valueOf()方法无法接受转换基数

4、时间Date类型的toString()方法返回的表示时间的字符串表示;而valueOf()方法返回的是现在到1970年1月1日00:00:00的数值类型的毫秒数

5、包装对象的valueOf()方法返回该包装对象对应的原始值

6、使用toString()方法可以区分内置函数和自定义函数

一、由基本数据型态转换成String

String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是 String.valueOf() 这个参数多载的方法

有以下几种

(1)String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
(2)String.valueOf(char c) : 将 char 变量 c 转换成字符串
(3)String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
(4)String.valueOf(char[] data, int offset, int count) : 将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串

(5)String.valueOf(double d) : 将 double 变量 d 转换成字符串
(6)String.valueOf(float f) : 将 float 变量 f 转换成字符串
(7)String.valueOf(int i) : 将 int 变量 i 转换成字符串
(8)String.valueOf(long l) : 将 long 变量 l 转换成字符串
(9)String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()

用法如下:
  int i = 10;
  String str = String.valueOf(i);
  这时候 str 就会是 “10”

二、 由 String 转换成 数字的基本数据型态

要将 String 转换成基本数据型态转 ,大多需要使用基本数据型态的包装类别

比如说 String 转换成 byte ,可以使用 Byte.parseByte(String s) ,这一类的方法如果无法将 s 分析 则会丢出 NumberFormatException

(1)byte : Byte.parseByte(String s) : 将 s 转换成 byte

(2)Byte.parseByte(String s, int radix) : 以 radix 为基底 将 s 转换为 byte ,比如说 Byte.parseByte(“11”, 16) 会得到 17

(3)double : Double.parseDouble(String s) : 将 s 转换成 double

(4)float : Double.parseFloat(String s) : 将 s 转换成 float

(5)int : Integer.parseInt(String s) : 将 s 转换成 int

(6)long : Long.parseLong(String s)
long output = Long.parseLong(str, 2);将str字符串表示的二进制数字形式转换为十进制数字

java中Integer.parseInt和Integer.valueOf 的区别:
parseInt()返回的是基本类型int,而valueof( )返回的是包装类Integer,Integer是可以使用对象方法的,而int类型就不能和Object类型进行互相转换。
Integer.parseInt(String s)将会返回int常量。
Integer.valueOf(String s)将会返回Integer类型的对象。

(valueOf是装箱方法,返回包装类,parseInt是包装类中返回int值的方法)

包装类型将基本类型的值包装在对象中,这样就可以使用对象的方法操作基本类型,类型之间的转换需要使用包装类型的方法才能完成,。因此需要有包装类型。
基本类型是直接用来存储值的,放在栈中方便快速使用,包装类型是类,其实例是对象,放在堆中。

StringBuffer 和 StringBuilder
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

String方法

split()
split()将字符串以正则表达式为参数分割为字符串数组。
split(String regex, int limit)第一个参数是以regex分割,第二个参数是分割的份数,如果limit=2,则分割第二份就停止。
indexOf
indexOf 是查某个指定的字符串在字符串首次出现的位置(索引值) (也就是从前往后查)
lastIndexOf 是从右向左查某个指定的字符串在字符串中最后一次出现的位置(也就是从后往前查)
substring()
str.substring(0,8)返回str字符串中索引0-8的子字符串

valueOf():可用于将基本类型转换为包装器类型
byteValue()、shortValue()等xxxValue()方法:可用于将包装器类型转换为基本数据类型
parseInt()等parseXxx()方法:可用于将String对象转换为基本数据类型
toString()方法:由Object对象继承而来,用于将包装器类型转换为String类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值