【Java】(十八)String类和常用方法,可变字符串

String类

  1. 字符串是常量,创建之后不可改变。
  2. 字符串字面值存储在字符串池中,可以共享。
  3. String s = "Hello";产生一个对象,字符串池中存储。
    String s = new String(“Hello”);产生两个对象,堆、池各存储一个。
package string;

public class textMethod {
    public static void main(String[] args) {
        String str1 = "Hello World,w";  //引用变量,指向字符串所在的常量池
        str1 = "java";  //重新指向一个常量池
        String str2 = new String("java");  //引用变量指向堆,堆指向常量池
        String str3 = "java";

        System.out.println(str1);
        System.out.println(str2);
        
        //简单理解:equals比较的是具体的值,==比较的是地址
        System.out.println(str1==str2);//F
        System.out.println(str1.equals(str2));//T
        System.out.println(str1==str3);//T
        System.out.println(str1.equals(str3));//T
    }
}

在这里插入图片描述

java中的堆、栈和常量池
堆:存放所有new出来的对象
栈:存放基本类型的变量数据和对象的引用
常量池:存放基本类型常量和字符串常量
java面试题之equals和==的区别
我没有重写equals方法,默认可以理解为equals比较的是具体的值,==比较的是地址。

常用方法

通常就是以字符串常量.方法名(参数)的当时调用:

  • public int length():返回字符串的长度。
  • public char charAt(int index):根据下标获取字符。
  • public boolean contains(String str):判断当前字符串中是否包含str。区分大小写
  • public lxhar[] toCharArray() :将字符串转换成数组。
  • public int indexOf(String str):查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1。
    public int lastIndexOf(String str):查找字符串在当前字符串中最后一次出现的下标索引。
  • public String trim() :去掉字符串前后的空格。
  • public String toUpperCase() :将小写转成大写。
  • public boolean endWith(String str):判断字符串是否以str结尾。
  • public String replace(char oldChar, qar newChar);将旧字符串替换成新字符串
  • public String[] split(String str):根据str做拆分。
package string;

import java.util.Arrays;
import java.util.Locale;

public class textMethod {
    public static void main(String[] args) {
        String str1 = " Hello World,";
        String str2 = "java";

        System.out.println(str1);
        System.out.println(str2);

        System.out.println(str1.length());//字符串长度
        System.out.println(str1.charAt(3));//根据下标获取字符,类似str1[3](Java不可用这种方法)
        System.out.println(str1.contains("Hello"));//判断是否包含,需要区分大小写
        System.out.println(str1.indexOf("Wor"));//首次出现下标
        System.out.println(str1.endsWith("d,"));//是否结尾
        System.out.println(Arrays.toString(str1.toCharArray()));//字符串转换为数组
        System.out.println(str1.trim());//去掉前后空格
        System.out.println(str1.toUpperCase(Locale.ROOT));//大小写转换
        System.out.println(str1.replace("World", "Java"));//字符串替换

        String arr[] = str1.split(" ");//拆分
        for (String s : arr) {
            System.out.println(s);
        }
    }
}

/*
 Hello World,
java
13
l
true
7
true
[ , H, e, l, l, o,  , W, o, r, l, d, ,]
Hello World,
 HELLO WORLD,
 Hello Java,

Hello
World,
 */

可变字符串

  • StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。
  • StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全。

可变字符串能够动态的分配字符串的空间。所以可以增加、插入等。

package string;

public class addText {
    public static void main(String[] args) {
        StringBuffer str = new StringBuffer("Hello");
        System.out.println(str);

        str.append("world");//追加
        System.out.println(str);
        str.insert(5, ",");//插入
        System.out.println(str);
        str.replace(5,6,"   ");//替换,区间左开右闭
        System.out.println(str);
        str.delete(5,7);//删除
        System.out.println(str);
    }
}
/*
Hello
Helloworld
Hello,world
Hello   world
Hello world
 */

和String区别:(1)效率比String高;(2)比String节省内存。

package string;

public class timeText {
    public static void main(String[] args) {
        long sTime = System.currentTimeMillis();
        String s1 = new String(" ");
        for (int i = 0; i < 1000; i++) {
            s1 += i;
        }
        long eTime = System.currentTimeMillis()-sTime;
        System.out.println("String类运行时间:"+eTime);
        long sTime2 = System.currentTimeMillis();
        StringBuffer s2 = new StringBuffer(" ");
        for (int i = 0; i < 1000; i++) {
            s2.append(i);
        }
        long eTime2 = System.currentTimeMillis()-sTime2;
        System.out.println("StringBuffer类运行时间:"+eTime2);
    }
}

/*
String类运行时间:6
StringBuffer类运行时间:1
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 花名册是一个常见的字符串应用场景,可以使用Java中的String常用方法来处理。 1. 字符串拼接 可以使用“+”运算符或者concat()方法来拼接字符串,例如: String name = "张三"; String age = "18"; String gender = "男"; String info = name + "," + age + "岁," + gender + "性。"; System.out.println(info); 输出结果为:“张三,18岁,男性。” 2. 字符串长度 可以使用length()方法来获取字符串的长度,例如: String name = "张三"; int length = name.length(); System.out.println("姓名长度为:" + length); 输出结果为:“姓名长度为:2” 3. 字符串截取 可以使用substring()方法来截取字符串的一部分,例如: String name = "张三"; String firstName = name.substring(, 1); System.out.println("姓氏为:" + firstName); 输出结果为:“姓氏为:张” 4. 字符串替换 可以使用replace()方法来替换字符串中的某个字符或者字符串,例如: String name = "张三"; String newName = name.replace("三", "四"); System.out.println("新姓名为:" + newName); 输出结果为:“新姓名为:张四” 5. 字符串查找 可以使用indexOf()方法来查找字符串中某个字符或者字符串的位置,例如: String name = "张三"; int index = name.indexOf("三"); System.out.println("三的位置为:" + index); 输出结果为:“三的位置为:1” 以上就是Java字符串String常用方法之花名册的一些示例,希望对您有所帮助。 ### 回答2: StringJava中一个很重要的,因为字符串在我们的生活和工作中都有广泛的应用。在Java中,String是不可变的,这意味着一旦字符串被创建,它的内容就不能被更改。此外,StringJava中最常用之一,具有丰富的方法和属性,下面我们来介绍一下string常用方法之花名册。 1. length()方法:用于获取字符串的长度,返回一个int型的值。 2. indexOf()方法:用于查找指定字符或字符串在原字符串中的位置,如果找到返回该字符或字符串在原字符串中的索引,否则返回-1。 3. lastIndexOf()方法:与indexOf()方法似,但是是从后往前查找指定字符或字符串在原字符串中的位置。 4. equals()方法:用于比较两个字符串是否相同,区分大小写。 5. equalsIgnoreCase()方法:用于比较两个字符串是否相同,不区分大小写。 6. substring()方法:用于从原字符串中截取一段子字符串,返回一个新的字符串。 7. toLowerCase()方法:将字符串中的所有字符转换为小写。 8. toUpperCase()方法:将字符串中的所有字符转换为大写。 9. contains()方法:用于判断原字符串是否包含指定的字符或字符串,返回一个Boolean型的值。 10. replace()方法:用于将原字符串中的指定字符替换为新的字符或字符串,返回一个新的字符串。 以上就是string常用方法之花名册,当然还有很多其他的方法,这里只是其中的一部分。掌握这些方法可以让我们能够更加方便地对字符串进行操作,提高我们的编程效率。 ### 回答3: Java中的字符串常见操作有很多,其中String常用方法之一就是花名册,这个方法对于字符串的处理非常有用。下面我将详细介绍一下这个方法。 首先,StringJava中非常重要的一个,用于处理字符串型的数据。它有很多方法可以对字符串进行操作。 其中,花名册方法string常用的一个方法。这个方法的主要作用是将字符串按照某个分隔符进行分割,返回一个字符串数组。 例如,我们可以使用花名册方法将一个包含多个人名的字符串按照逗号分隔开来。代码如下: String names = "小明,小红,小刚,小强"; String[] nameArray = names.split(","); 在上面的代码中,我们使用了split方法字符串names按照逗号分隔开来,返回了一个字符串数组nameArray。这样,我们就可以对这个字符串数组进行遍历,获取其中的每个人名。 除了逗号分隔符,花名册方法还支持其他的分隔符,例如空格、横线等等。我们只需要将想要使用的分隔符作为参数传给split方法即可。 此外,还有一个与split方法相似的方法叫做join方法,它的作用是将一个字符串数组按照某个分隔符进行拼接,返回一个新的字符串。 例如,我们可以使用join方法将一个字符串数组按照逗号进行拼接。代码如下: String[] names = {"小明", "小红", "小刚", "小强"}; String nameStr = String.join(",", names); 在上面的代码中,我们使用了join方法字符串数组names按照逗号进行拼接,返回了一个新的字符串nameStr。 在实际编程中,花名册方法非常常用,特别是在处理字符串的时候。我们可以使用它将一个长字符串按照某个分隔符进行分割,或者将一个字符串数组按照某个分隔符进行拼接,这样可以方便我们对字符串进行处理和操作。 总之,掌握好String常用方法中的花名册方法,对于Java开发工程师来说是非常重要的一项技能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值