如何增加字符串中的特定字符(Java)

时间:2015-03-19 16:18:36

标签: java

假设我有一个字符串s1 =“abcd”;

输出应为s1 =“abca”;

我想减少/递增字符串中的最后一个字符,使其与字符串的第一个字符匹配。 由于String不允许修改数据 我怎样才能做到这一点。

2 个答案:

答案 0 :(得分:2)

正如您所指出的那样,String是不可变的,您必须执行一项任务。我做substring()然后连接第一个字母。像

这样的东西
String s1 = "abcd";
s1 = s1.substring(0, s1.length() - 1) + s1.charAt(0);
System.out.println(s1);

输出(按要求)

abca

JLS-4.2.1. Integral Types and Values确实记录char是一个整数类型。这允许你做类似

的事情
public static String modifyCharInString(String in, int index, int ammount) {
    if (in == null || in.isEmpty() || index < 0 || index >= in.length()) {
        return in;
    }
    StringBuilder sb = new StringBuilder(in);
    sb.setCharAt(index, (char) (in.charAt(index) + ammount));
    return sb.toString();
}

然后你称之为

public static void main(String[] args) {
    String s1 = "abcd";
    s1 = modifyCharInString(s1, s1.length() - 1, -3);
    System.out.println(s1);
}

输出(再次)

abca

答案 1 :(得分:0)

对于编辑字符串,您可以使用StringBuilder类。这使您可以获得比使用substring()更好的性能。

    String oldString = "abcd";
    StringBuilder sb = new StringBuilder(oldString);
    sb.setCharAt(sb.length() - 1, sb.charAt(0));
    String newString = sb.toString();