为了账号安全,请及时绑定邮箱和手机立即绑定

Java中如何在不使用substring()方法的情况下获取子字符串?

Java中如何在不使用substring()方法的情况下获取子字符串?

Smart猫小萌 2023-11-10 16:45:55
我只是在寻找一种简单的方法来提取子字符串而不使用 substring 方法。
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您可以按如下方式进行操作:


public class Test {

    public static void main(String args[]) {

        String str = "Hello World!";

        String newStr = "";

        int startFrom = 2, endBefore = 5;// test startFrom and endBefore indices

        for (int i = startFrom; i < endBefore; i++)

            newStr += String.valueOf(str.charAt(i));

        System.out.println(newStr);

    }

}

输出:


llo

使用StringBuilder有两个明显的优点:


在将值附加到字符串之前,您不需要将值String.valueOf转换char为value,因为StringBuilder支持直接向其附加值。Stringchar

您可以避免创建大量String对象,因为由于它String是一个不可变的类,因此每次尝试更改字符串都会创建一个新String对象。你可以在这里查看一个很好的讨论。


public class Test {

    public static void main(String args[]) {

        String str = "Hello World!";

        StringBuilder newStr = new StringBuilder();

        int startFrom = 2, endBefore = 5;// test startFrom and endBefore indices

        for (int i = startFrom; i < endBefore; i++)

            newStr.append(str.charAt(i));

        System.out.println(newStr);

    }

}


查看完整回答
反对 回复 2023-11-10
?
holdtom

TA贡献1805条经验 获得超10个赞

我假设这是一个家庭作业问题,但如果您想要提示,您可以使用它myString.toCharArray()来提取char[]字符串中每个字符的 a 并myString.charAt(0)获取索引 0 处的字符。

您还可以从字符数组构造一个新的字符串,new String(myCharArray)因此您可以简单地

  1. 获取原始字符串并获取字符数组(char[] myChars = myString.toCharArray();例如)

  2. 将字符数组复制到一个新的、更短的数组中 ( char[] mySubstringChars = ...)

  3. 将较短的 char 数组更改回 String ( String mySubstring = new String(mySubstringChars);)


查看完整回答
反对 回复 2023-11-10
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信