coo*_*ird 47
由于String对象是不可改变的,去一个char[]通过toCharArray,调换角色,然后又做了新的String从char[]通过String(char[])构造函数会工作.
以下示例交换第一个和第二个字符:
String originalString = "abcde";
char[] c = originalString.toCharArray();
// Replace with a "swap" function, if desired:
char temp = c[0];
c[0] = c[1];
c[1] = temp;
String swappedString = new String(c);
System.out.println(originalString);
System.out.println(swappedString);
Run Code Online (Sandbox Code Playgroud)
结果:
abcde
bacde
Run Code Online (Sandbox Code Playgroud)
too*_*kit 27
'在'字符串中,你不能.字符串是不可变的.您可以轻松地创建第二个字符串:
String second = first.replaceFirst("(.)(.)", "$2$1");
Run Code Online (Sandbox Code Playgroud)
小智 8
这已经回答了几次,但这里还有一个只是为了好玩:-)
public class Tmp {
public static void main(String[] args) {
System.out.println(swapChars("abcde", 0, 1));
}
private static String swapChars(String str, int lIdx, int rIdx) {
StringBuilder sb = new StringBuilder(str);
char l = sb.charAt(lIdx), r = sb.charAt(rIdx);
sb.setCharAt(lIdx, r);
sb.setCharAt(rIdx, l);
return sb.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
StringBuilder sb = new StringBuilder("abcde");
sb.setCharAt(0, 'b');
sb.setCharAt(1, 'a');
String newString = sb.toString();
Run Code Online (Sandbox Code Playgroud)
小智 5
static String string_swap(String str, int x, int y)
{
if( x < 0 || x >= str.length() || y < 0 || y >= str.length())
return "Invalid index";
char arr[] = str.toCharArray();
char tmp = arr[x];
arr[x] = arr[y];
arr[y] = tmp;
return new String(arr);
}
Run Code Online (Sandbox Code Playgroud)
String.replaceAll() 或replaceFirst()
String s = "abcde".replaceAll("ab", "ba")
Run Code Online (Sandbox Code Playgroud)
链接到 JavaDocs String API