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

如何在Java中不使用substring()方法获取子字符串?,java,string,substring,Java,String,Substring,我只是在寻找一种简单的方法,不用substring方法就可以提取子字符串 我假设这是一个家庭作业问题,但是如果您想得到提示,可以使用myString.tocharray()提取字符串中每个字符的char[],并使用myString.charAt(0)获取索引0处的字符 您还可以从字符数组newstring(myCharArray)构造一个新字符串,这样您就可以轻松地 获取原始字符串并获取字符数组(char[]myChars=myString.tocharray();,例如) 将字符数组复制到新的

我只是在寻找一种简单的方法,不用substring方法就可以提取子字符串

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

您还可以从字符数组
newstring(myCharArray)
构造一个新字符串,这样您就可以轻松地

  • 获取原始字符串并获取字符数组(
    char[]myChars=myString.tocharray();
    ,例如)
  • 将字符数组复制到新的较短的数组中(
    char[]mySubstringChars=…
  • 将较短的字符数组改回字符串(
    String mySubstring=newstring(mySubstringChars);

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

    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);
        }
    }
    
    [更新]

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

  • 在将
    char
    值附加到字符串之前,不需要
    String.valueOf
    char
    值转换为
    String
    值,因为支持直接将
    char
    值附加到字符串
  • 您可以避免创建大量
    String
    对象,因为
    String
    是一个不可变的类,因此每次尝试更改字符串都会创建一个新的
    String
    对象。你检查了一个好的讨论

    公共类测试{
    公共静态void main(字符串参数[]){
    String str=“你好,世界!”;
    StringBuilder newStr=新的StringBuilder();
    int startFrom=2,endBefore=5;//测试startFrom和endBefore索引
    for(int i=startFrom;i

  • 使用
    charAt
    将字符串视为数组,然后自己提取。您可以随时查看substring方法的源代码。是否可以添加一个代码,以便在不必使用substring()方法的情况下提取数据或文本。当然,有很多方法可以实现您的代码,但是在这里添加您所做的工作或您的方法。谢谢您的回答。这是一个家庭作业问题,但我们还没有学会数组、函数或其他有趣的东西。我们在变量声明和使用简单字符串方法方面做得很好。我很确定你可以制作一个函数来完成子字符串方法的工作,但是正如我所说的,我是一个完全的初学者。哦,不,循环中的字符串连接!
    llo
    
    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);
        }
    }