在处理字符串后,如何将从main函数传递到另一个函数的字符串再次返回main?

时间:2017-09-01 11:18:15

标签: java string

我已经做了一个简单的代码来反转Java中的字符串而不使用内置函数。但我观察到,与C不同,我们可以使用指针在同一个变量中获得更改的字符串,由于缺少指针概念,因此在Java中这是不可能的。所以请告诉我在Java中使用main函数取回字符串的替代方法。

class RevFun{
    public void revFun(StringBuilder str)
    {
        for(int i=str.length()-1;i>=0;i--)
        {
             System.out.println(str.charAt(i));//Here I am able to print it!
        }

        return;
    }
}

class Rev
{
    public static void main(String args[])
    {
        RevFun rev = new RevFun();
        StringBuilder str = new StringBuilder("Hello");
        System.out.println("Before reversing : "+str);
        rev.revFun(str);
        System.out.println("After reversing : "+str);//Here what should I do to get the reversed string from RevFun
    }
}

2 个答案:

答案 0 :(得分:0)

给出第二种方法returntype String

public static String handleString(String input){
  // modify input
  input += " test";
  return input;
}

并使用或指定主要内容中的(新)值:

public static void main(String[] args){
  String a = "hello";
  String b = handleString(a);
  System.out.println(a);
  System.out.println(b);
}

另一种方法是让你的变量在类级别上:

static String test = "hi";

public static void main(String[] args){
  System.out.println(test);
  handleString();
  System.out.println(test);
}

public static void handleString(){
  test += " and bye";
}

这两种方法都可以访问变量,因此您甚至不需要将其作为参数传递。

答案 1 :(得分:0)

在Java Strings不可变。这意味着您无法更改它们。您可以阅读更多here

因此,如果您想“操纵”String,则必须返回一个新对象