📌  相关文章
📜  交换两个字符串,而无需在Java中使用第三个用户定义的变量

📅  最后修改于: 2020-03-27 05:11:39             🧑  作者: Mango

给定两个字符串变量a和b,在不使用Java中的临时变量或第三个变量的情况下交换这些变量。允许使用库方法。
例子,

输入
a = "Hello"
b = "World"
输出:
交换前: a = Hello , b = World
交换以后: a = World , b = Hello
这个想法是通过字符串连接和substring()方法来执行操作。substring()方法有以下两种形式:
  • substring(int beginindex):此功能将返回调用字符串的子字符串,从作为参数传递给该函数的索引开始,直到调用字符串中的最后一个字符。
  • substring(int beginindex,int endindex):此函数将返回调用字符串的子字符串,该字符串从beginindex(包括)开始,到作为参数传递给此函数的endindex(排除)结束。

算法:

1)将第二个字符串附加到第一个字符串,然后
   存储在第一个字符串中:
   a = a + b
2)调用方法substring(int beginindex,int endindex)
   通过将beginindex传递为0,将endindex传递为,
      a.length()-b.length():
   b = substring(0,a.length()-b.length());
3)通过传递调用方法substring(int beginindex)
   b.length()作为存储初始值的参数
   a中的b字符串
   a = substring(b.length());
// Java 交换两个字符串.
import java.util.*;
class Swap
{
    public static void main(String args[])
    {
        // 声明两个strings
        String a = "Hello";
        String b = "World";
        // 交换前打印
        System.out.println("交换前: a = " +
                                       a + ", b = "+b);
        // 把第2个添加到第一个
        a = a + b;
        //  在b中保存原始a
        b = a.substring(0,a.length()-b.length());
        // 在a中保存原始b
        a = a.substring(b.length());
        // 打印交换后的a和b
        System.out.println("交换后: a = " +
                                     a + ", b = " + b);
    }
}
输出:
交换前: a = Hello, b = World
交换后: a = World, b = Hello