在Java中交换字符串的字符

正如我们所知 Java中的字符串 是不可变的(即,一旦其创建,我们就无法执行任何更改)。 要修改存储在字符串对象中的字符串,我们将其复制到字符数组、StringBuffer等中,并对复制对象进行修改。 在本文中,我们将介绍一些方法来交换给定字符串的字符,并在原始字符串不受影响的情况下获得一个新字符串(使用交换的字符)。 通过下面的例子,我们可以看到一些方法,通过这些方法我们可以交换字符,生成新的字符串 例如: 方法1(使用toCharArray) 在这种方法中,我们将字符串转换为字符数组,并执行所需的交换。

null

JAVA

// Java program to demonstrate character swap
// using toCharArray().
public class GFG {
static char [] swap(String str, int i, int j)
{
char ch[] = str.toCharArray();
char temp = ch[i];
ch[i] = ch[j];
ch[j] = temp;
return ch;
}
public static void main(String args[])
{
String s = "geeksforgeeks";
System.out.println(swap(s, 6 , s.length() - 2 ));
System.out.println(swap(s, 0 , s.length() - 1 ));
System.out.println(s);
}
}


输出:

geeksfkrgeeosseeksforgeekggeeksforgeeks

方法2(使用subString()) 我们使用给定字符串的子字符串构建修改后的字符串。

JAVA

// Java program to demonstrate character swap
// using subString()
public class GFG {
static String swap(String str, int i, int j)
{
if (j == str.length() - 1 )
return str.substring( 0 , i) + str.charAt(j)
+ str.substring(i + 1 , j) + str.charAt(i);
return str.substring( 0 , i) + str.charAt(j)
+ str.substring(i + 1 , j) + str.charAt(i)
+ str.substring(j + 1 , str.length());
}
public static void main(String args[])
{
String s = "geeksforgeeks";
System.out.println(swap(s, 6 , s.length() - 2 ));
System.out.println(swap(s, 0 , s.length() - 1 ));
// Original String doesn't change
System.out.println(s);
}
}


输出:

geeksfkrgeeosseeksforgeekggeeksforgeeks

方法3(使用StringBuilder或StringBuffer) 在这种方法中,您可以根据情况使用StringBuilder或StringBuffer。看见 Java中的字符串、StringBuilder和StringBuffer 决定何时使用哪一种。

JAVA

// Java program to demonstrate character swap
// using StringBuilder
public class GFG {
static String swap(String str, int i, int j)
{
StringBuilder sb = new StringBuilder(str);
sb.setCharAt(i, str.charAt(j));
sb.setCharAt(j, str.charAt(i));
return sb.toString();
}
public static void main(String args[])
{
String s = "geeksforgeeks";
System.out.println(swap(s, 6 , s.length() - 2 ));
System.out.println(swap(s, 0 , s.length() - 1 ));
// Original String doesn't change
System.out.println(s);
}
}


输出:

geeksfkrgeeosseeksforgeekggeeksforgeeks

输出:

geeksfkrgeeosseeksforgeekggeeksforgeeks

本文由 苏米特·戈什 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享