【问题标题】:how to return the value or string form another method如何从另一个方法返回值或字符串
【发布时间】:2021-01-14 01:32:03
【问题描述】:

我有String "sequence"。我用replacement() 方法替换了字符串,我想使用sequence() 方法返回替换的String,该方法仅返回String。 我试过了,但它只返回"sequence",它没有被替换。有什么建议吗?

public class Sequnce {
    str ="sequence";

    public String replacement(String orginal, String new){
        orginal = "se"
        new = "Se"
        str.replace(original, new);

        return str
    }

    public String sequence() { 
        return str;
    }
}

【问题讨论】:

  • 您应该能够在提交之前看到问题的预览。请在询问之前仔细检查诸如缩进之类的内容。这是一团糟。您的问题会在被问到后立即获得最多的活动。如果你真的想要一个答案,你需要花时间让你的问题做到最好。
  • 对不起,这是我使用这个平台的初学者。
  • new 是一个关键字。你不能命名一个参数。你还需要分号
  • 您好,请更新您的代码,以便它可以编译和打印任何输出。您可能需要阅读一篇文章如何provide a minimal reproducible example

标签: java string methods return


【解决方案1】:

String 对象是不可变的,因此在 String 对象上调用方法不会改变它。但是你可以返回它的结果(这是一个新的 String 对象)。

public String replacement(String orginal, String replacement){
    return str.replace(original, replacement);
}

【讨论】:

  • 那我应该用 String sequence() 方法做什么?我试过它返回未替换的字符串...
  • 当然,就是这样。你能指望什么?改用 replacement()。
【解决方案2】:

replace(char oldChar, char newChar) 返回一个新字符串,该字符串是用 newChar 替换此字符串中所有出现的 oldChar 所产生的。来自docs.oracle.com
所以在你的例子中,你可以这样做:

public class Main
{
    String str = "SAquAncA";
    

    public void replacement(char original, char new_char)
    {
        str = str.replace(original, new_char);
    }

    public String sequence() { 
        return str;
    }
    
    public static void main(String[] args) 
    {
        Main obj = new Main();
        obj.replacement('A','e');
        System.out.println( obj.sequence() );
    }
}

结果:
Sequence

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多