String类型字符串转换成其他类型

说起字符串,开发中,经常需要对字符串进行转换操作,而Java中定义了String类以及StringBuffer、StringBuilder类来封装字符串,提供了一系列操作字符串的方法,位于java.lang包中。

1.初始化

String 变量名=字符串;

String str1 = null;//初始化为空

String str2 = "";//初始化为空字符串

String str3 = "abc";//初始化为abc,其中abc为字符串常量

null与空字符串主要区别如下:

        (1)null不指向任何对象,相当于没有任何值;而“”代表一个长度为0的字符串

        (2)null不分配内存空间;而“”会分配内存空间

2.String的构造方法初始化字符串对象

String 变量名 = new String(字符串);

String()

String(String value)

String(char[] value)
public static void main(String[] args) {
//        创建一个空字符串
        String str1 = new String();
//        创建一个内容为abc的字符串
        String str2 = new String("abc");
        char[] charArray = new char[] {'A','B','C','D'};
//        创建一个内容为字符数组的字符串
        String str3 = new String(charArray);
        System.out.println("a"+str1+"b");
        System.out.println(str2);
        System.out.println(str3);
    }
方法声明功能描述
int indexOf(int ch)返回指定字符在此字符串中第一次出现的索引
int lastIndex(int ch)返回指定字符在此字符串中最后一次出现的索引
int indexOf(String str)返回指定子字符在此字符串中第一次出现的索引
int lastIndexOf(String str)返回指定子字符在此字符串中最后一次出现的索引
char charAt(int index)返回字符串中index位置上的字符,index的取值范围是[0,字符串长度-1]
boolean endsWith(String suffix)判断此字符串是否以suffix结尾
int length()返回此字符串的长度
boolean equals(Object anObject)将此字符串和指定字符串比较
boolean isEmpty()当且仅当此字符串为空时返回true
boolean startsWith(String prefix)判断此字符串是否以指定的字符串开始
boolean contains(CharSequence cs)判断此字符串中是否包含指定的字符串序列
String toLowerCase()使用默认语言环境的规则将String中的所有字符都转换为小写
String toUpperCase()使用默认语言环境的规则将String中的所有字符都转换为大写
static String valueOf(int i)返回int参数的字符串表示形式
char[] toCharArray()将此字符串转换为一个字符数组
String replace(CharSequence oldstr,CharSequence newstr)返回一个新的字符串,是将此字符串中oldstr换成newstr得到的
String[] split(String regex)根据regex(regex是一个正则表达式,用来限定分割规则)将字符串分割为若干个子字符串
String substring(int beginIndex)返回一个新字符串,它包含从指定的eginIndex下标开始,直到此字符串末尾的所有字符
String substring(int beginIndex,int endIndex)返回一个新字符串,它包含从指定的beginIndex下标处开始,直到索引endIndex-1下标处的所有字符
String trim(),返回一个新字符串,它去除了原字符串首尾的

字符串转换操作

1.[]数组

char[] toCharArray()

String[] split(" ");

2.int 数字

使用int类型的封装类Integer中的static int parseInt(字符串)

String中的valueOf(其他类型)方法转换成String类型

public static void main(String[] args) {

//        String转换成char字符数组
        String str = "java";
        char[] charArray = str.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            if (i != charArray.length - 1) {
                System.out.print(charArray[i] + ",");
            } else {
                System.out.println(charArray[i]);
            }
        }
//        String转换成int类型
        String str1 = "123";
        int n = Integer.parseInt(str1);
        System.out.println("String转换成int类型:"+n);

//        int类型转换成String类型的
        System.out.println("int类型转换成String类型的:"+String.valueOf(12));

//        转换成大写
        String s = str.toUpperCase();
        System.out.println("转换成大写:"+s);
//        转换成小写
        System.out.println("转换成小写:"+s.toLowerCase());

//        将输入的字符串变成字符串数组
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
//        变成String数组
        String[] strings = line.split(" ");
        for(String k:strings){
            System.out.println(k);
        }
    }

字符串的替换和去空格操作

使用replace()和trim()

public static void main(String[] args) {
        String s = "      http:// localhost : 8080   ";
        System.out.println("使用trim方法去除空格"+s.trim());
        System.out.println("使用replace方法替换空格"+s.replace(" ",""));
    }

字符串的判断操作

public static void main(String[] args) {
        String s1 = "string";
        String s2 = "str";
        System.out.println("是否以字符串st开始:"+s1.startsWith("st"));
        System.out.println("是否以字符串in结尾:"+s1.endsWith("in"));
        System.out.println("是否包含字符串ab:"+s1.contains("ab"));
        System.out.println("s1是否为空:"+s1.isEmpty());
        System.out.println("判断s1和s2是否相等:"+s1.equals(s2));

    }

注:在所使用的方法中,equals()方法是比较重要的,在String类中重写了父类Object中的equals()方法。

在程序中可以通过==和equals()两种方式对字符串进行比较,但这两种方式有明显的区别。equals()方法用于比较两个字符串中的字符值是否相等,==方法用于比较两个字符串对象的内存地址是否相同。对于两个字符串对象,当它们的字符值完全相同时,使用equals()判断结果会是true,但使用==判断是,结果一定为false。

StringBuffer类

在Java中,由于String类是final类型的,所以使用String定义的字符串是一个常量,因此它一旦创建,其内容和长度是不可改变的,如果对一个字符串进行修改,则只能创建新的字符串。于是StringBuffer类,其实StringBuilder类也可以操作字符串,和StringBuffer功能相似,而StringBuffer是线程安全的,而StringBuilder没有实现线程安全功能,所以性能略高。通常情况下,如果创建一个内容可变的字符串对象,应该优先考虑StringBuilder类。

StringBuilder类的添加append(),插入insert(),替换replace(),删除delete()同StringBuffer

方法声明功能描述
StringBuffer append(char c)添加字符到StringBuffer对象中末尾
StringBuffer insert(int offset,String str)在StringBuffer对象中的offset位置插入字符串str
StringBuffer deleteCharAt(int index)移除StringBuffer对象中指定位置的字符
StringBuffer delete(int start,int end)将StringBuffer对象中指定范围的字符或字符串
StringBuffer replace(int start,int end,String s)将StringBuffer对象中指定范围的字符或字符串用新的字符串s进行替换
void setCharAt(int index,char ch)

修改指定位置index处的字符

String toString()返回StringBuffer缓冲区中的字符串对象
StringBuffer reverse()将此StringBuffer对象用其反转形式取代

append()和insert()方法是最常用的,并且这两个方法有很多重载形式,都用于添加字符。append()方法始终将这些字符添加到缓冲区的末尾,而insert()方法则可以在指定的位置添加字符。delete()方法用于删除指定位置的字符,包含起始索引,不包含结束索引,setCharAt()和replace()方法用于替换指定位置的字符。

StringBuffer类和String类的区别

1.String类定义的字符是常量,一旦创建后,内容和长度都是无法改变的。StringBuffer表示字符容器,其内容和长度可以随时修改。在操作字符串式,如果该字符串仅用于表示数据类型,则使用String类即可,但是如果需要对字符串中的字符进行增删操作,则使用StringBuffer类或者StringBuilder类

2.String类重写了Object类的equals()方法,而StringBuffer类没有重写Object类的equals()方法。

3.String类对象可以用操作符+进行连接,而StringBuffer对象之间不能。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值