围绕JAVA中不可变字符串的方法是什么?

时间:2018-05-13 01:56:10

标签: java string

我正在处理一个小问题。我知道在JAVA中使用StringBuilder类来处理可变字符串。我正在处理的问题要求我将一个字符串传递给一个返回void的函数并将String反转到位。我不知道怎么做不到,因为我在main中的函数调用后引用的字符串不再是我作为参数发送给函数的字符串。有没有办法可以在不必返回的情况下获得String?

import java.io.*;
import java.util.Scanner;
public class first {
void rev(String s) {
    StringBuilder sb = new StringBuilder(s.length()+1);
    sb.append(s);
    sb.reverse();
    System.out.println(sb);
    s=sb.toString();
    System.out.println(s);
}
public static void main(String args[]) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter a string");
    String s;
    first fs = new first();
    s=br.readLine();
    fs.rev(s);
    System.out.println(s);
}
}

1 个答案:

答案 0 :(得分:0)

你应该通过StringBuilder而不是像这样的String传递。

void rev(StringBuilder sb) {
    sb.reverse();
    System.out.println(sb);
    String s = sb.toString();
    System.out.println(s);
}

public static void main(String args[]) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter a string");
    Main fs = new Main();
    StringBuilder s = new StringBuilder(br.readLine());
    fs.rev(s);
    System.out.println(s);
}