Java小案例——交换两个数值的三种方法

要求:

  互换两个数的值



方法一:借助第三方变量

/**
 * 借助第三方变量对两个值进行互换
 * @author Administration
 *
 */
public class ExchangeValue {

    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        System.out.println("a的值:"+a+",\tb的值:"+b);
        System.out.println("对两个值执行互换操作...");
        int temp = a;
        a=b;
        b=temp;
        System.out.println("a的值:"+a+",\tb的值:"+b);
    }
}

运行结果:

a的值:10,    b的值:15
对两个值执行互换操作...
a的值:15,    b的值:10


方法二:不需要借助第三方变量(加减运算)

/**
 * 不需要借助第三方变量对两个值进行互换
 * @author Administration
 *
 */
public class ExchangeValue {

    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        System.out.println("a的值:"+a+",\tb的值:"+b);
        System.out.println("对两个值执行互换操作...");
        a=a+b;  
        b=a-b;
        a=a-b;
        System.out.println("a的值:"+a+",\tb的值:"+b);
    }
}

运行结果:

a的值:10,    b的值:15
对两个值执行互换操作...
a的值:15,    b的值:10


方法三:不需要借助第三方变量(异或运算)

/**
 * 不需要借助第三方变量对两个值进行互换
 * @author Administration
 *
 */
public class ExchangeValue {

    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        System.out.println("a的值:"+a+",\tb的值:"+b);
        System.out.println("对两个值执行互换操作...");
        a=a^b;
        b=a^b;
        a=a^b;
        System.out.println("a的值:"+a+",\tb的值:"+b);
    }
}

原理:某个数值a与一个数值b进行异或运算得到c,则再用c与b运算可以还原a。因此这个原理可以实现两个数值的交换。

运行结果:

a的值:10,    b的值:15
对两个值执行互换操作...
a的值:15,    b的值:10
时间: 2024-08-26 17:55:08

Java小案例——交换两个数值的三种方法的相关文章

交换两个整数的三种方法

package com.zby.bubble; /** * <class description> 三种方法交换两个整数的值 * * @author zby * */ public class Exchange { public static void main(String[] args) { splitLine(); exchange1(Integer.MAX_VALUE, Integer.MAX_VALUE - 1); exchange1(99, 100); exchange1(Inte

Java/JSP获得客户端网卡MAC地址的三种方法解析

java/jsp获得客户端(IE)网卡MAC地址的方法大概有三种. 1.通过命令方式,在客户端执行Ipconfig 等等.(java/jsp) 2.通过ActiveX的方法.(jsp) 3.通过向137的端口发送查询指令的方法.(java/jsp) 简介: 第一种方法,在真正用到时候不知道为什么获得mac地址的指令阻塞了,不往下继续执行.而且速度是这三种方法中最慢的一种. 代码如下: String sip=""; String smac=""; sip = requ

java将doc文件转换为pdf文件的三种方法

http://feifei.im/archives/93 —————————————————————————————————————————————— 项目要用到doc转pdf的功能,一番google之后总结出了三种方法(免费方案),于是一一试了一下,做个总结记录,下次要用直接查,省的忘了…… 方法1.poi读取doc + itext生成pdf (实现最方便,效果最差,跨平台) 方法2.jodconverter + openOffice (一般格式实现效果还行,复杂格式容易有错位,跨平台) 方法

java中判断字符串是否为数字的三种方法

//    1用JAVA自带的函数    public static boolean isNumericFirst(String str){      for (int i = str.length();--i>=0;){          if (!Character.isDigit(str.charAt(i))){        return false;       }      }      return true;     } //2用正则表达式    public static bo

php求两数组交集的三种方法

题目: 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1],nums2 = [2,2]输出: [2]示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明: 输出结果中的每个元素一定是唯一的. 我们可以不考虑输出结果的顺序. 解法一:迭代一个数组 思路分析: 迭代一个数组,判断是否存在另外一个数组 PHP 代码实现: /** * @param Integer[] $nums1 * @pa

java实现map和object互转的三种方法

/** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map<string object=""> map, Class<?> beanClass) throws Exception { if (map == null) return null; Object obj = beanClass.newInstance(); org.apache.c

php保留两位小数的三种方法

around:a.代码: <?php $num1 = round(5,2); $num2 = round(5.123,2); echo $num1.PHP_EOL; echo $num2.PHP_EOL; b.输出: 5 5.12 sprintf:a.代码: <?php $num1 = sprintf('%.2f',5); $num2 = sprintf('%.2f',5.123); echo $num1.PHP_EOL; echo $num2.PHP_EOL; b.输出: 5.00 5.12

Java小案例(行星移动)

Java小案例 行星移动:参考:三百集 使用软件:idea2017,java 1,图片集:这里  (idea图片源放在target目录下,才能访问到),建议从小往上看... 2,定义MyFrame package my.university; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MyFrame extends Frame {

交换两个数值的方法,注意有【坑】,闲来无事,总结一下

交换两个数值的方法 题面: 设a,b两个整数值,交换两个a,b二者的值, 例如: 设 a=1, b=2, 交换后 a=2,b=1 这几种方法,网上也说过很多,但是都没注意这几种方法的[坑],不要只顾着新奇方法,毕竟[可靠性]很重要,这里稍微记录下 方法1 最简单的方法就是加一个中间量: int c=a; a=b; b=c; 方法2 使用异或运算 xor: a = a xor b; //a=3, b=2 b = a xor b; //a=3, b=1 a = a xor b; //a=2, b=1