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

我只是在寻找一种简单的方法来提取子字符串而不使用 substring 方法。



Smart猫小萌
浏览 129回答 2
2回答

千巷猫影

您可以按如下方式进行操作:public class Test {&nbsp; &nbsp; public static void main(String args[]) {&nbsp; &nbsp; &nbsp; &nbsp; String str = "Hello World!";&nbsp; &nbsp; &nbsp; &nbsp; String newStr = "";&nbsp; &nbsp; &nbsp; &nbsp; int startFrom = 2, endBefore = 5;// test startFrom and endBefore indices&nbsp; &nbsp; &nbsp; &nbsp; for (int i = startFrom; i < endBefore; i++)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newStr += String.valueOf(str.charAt(i));&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(newStr);&nbsp; &nbsp; }}输出:llo使用StringBuilder有两个明显的优点:在将值附加到字符串之前,您不需要将值String.valueOf转换char为value,因为StringBuilder支持直接向其附加值。Stringchar您可以避免创建大量String对象,因为由于它String是一个不可变的类,因此每次尝试更改字符串都会创建一个新String对象。你可以在这里查看一个很好的讨论。public class Test {&nbsp; &nbsp; public static void main(String args[]) {&nbsp; &nbsp; &nbsp; &nbsp; String str = "Hello World!";&nbsp; &nbsp; &nbsp; &nbsp; StringBuilder newStr = new StringBuilder();&nbsp; &nbsp; &nbsp; &nbsp; int startFrom = 2, endBefore = 5;// test startFrom and endBefore indices&nbsp; &nbsp; &nbsp; &nbsp; for (int i = startFrom; i < endBefore; i++)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; newStr.append(str.charAt(i));&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(newStr);&nbsp; &nbsp; }}

holdtom

我假设这是一个家庭作业问题,但如果您想要提示,您可以使用它myString.toCharArray()来提取char[]字符串中每个字符的 a 并myString.charAt(0)获取索引 0 处的字符。您还可以从字符数组构造一个新的字符串,new String(myCharArray)因此您可以简单地获取原始字符串并获取字符数组(char[] myChars = myString.toCharArray();例如)将字符数组复制到一个新的、更短的数组中 (&nbsp;char[] mySubstringChars = ...)将较短的 char 数组更改回 String (&nbsp;String mySubstring = new String(mySubstringChars);)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java