Java中,先声明两个整型变量并赋值,然后将两个变量的值进行交换,求解?

注意:只能声明两个变量,不能声明第三个变量进行交换赋值。例如:inti=5;intj=6;<<<<<<<<intz=i;i=j;j=z;这样不行。... 注意:只能声明两个变量,不能声明第三个变量进行交换赋值。例如:
int i = 5;
int j = 6;
<<<<<<<<
int z = i;
i = j;
j = z;
这样不行。
展开
 我来答
aha_no_one
推荐于2017-11-21 · TA获得超过499个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:186万
展开全部
int i = 5;
int j = 6;

i = i + j;    // 5 + 6 = 11
j = i - j;    // 11 - 6 = 5
i = i - j;    // 11 - 5 = 6

两个变量之和不超出范围就没问题

追问
如果是字符串,比如左手苹果右手香蕉,相互交换?
追答
String left = "apple";
String right = "banana;

left += right;    // "applebanana";
right = left.substring(0, left.length() - right.length());    // "apple"
left = left.substring(right.length());                        // "banana"
历盆郁7
2015-10-23 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:931万
展开全部

这是很恶心的题目,不过有办法

    public static void main(String[] args) {

        int i = 5;
        int j = 6;

        System.out.println("交换前:i=" + i + ",j=" + j);

        i = j + j;
        j = i - j;
        i = i - j;

        System.out.println("交换后:i=" + i + ",j=" + j);
    }
追问
如果是字符串,比如左手苹果右手香蕉,相互交换?
追答
    public static void main(String[] args) {

        String str1 = "a";
        String str2 = "bcd";

        System.out.println("交换前:str1=" + str1 + ",str2=" + str2);

        str1 = str1 + str2;
        str2 = str1.substring(0, str1.length() - str2.length());
        str1 = str1.substring(str2.length(), str1.length());

        System.out.println("交换后:str1=" + str1 + ",str2=" + str2);
    }

这种问题,这样的写法,除了炫耀,没一点用,实际工作中,不会写这样的代码

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小海豚12129
2019-05-20
知道答主
回答量:8
采纳率:0%
帮助的人:5988
展开全部
int i = 5;
int j = 6;
i = i ^ j;
j = i ^ j;
i = i ^ j;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式