假设我有一个字符串s1 =“abcd”;
输出应为s1 =“abca”;
我想减少/递增字符串中的最后一个字符,使其与字符串的第一个字符匹配。 由于String不允许修改数据 我怎样才能做到这一点。
答案 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();