java 编写函数 交换两个基本变量的值
Java编写一个函数交换两个变量的值
Java函数在传递过程中只能够传值,不能传址。这样,函数的参数在函数内部做任何变化就都不会反映到外部调用者来。所以解决之道就是要找到要交换对象的引用。对于普通的值类型,像int或者double这样的可以改传他们的包装类Integer和Double。而对于本来就是引用类型的对象,则需要对他们再包一层。一个好的方法就是将参数列表改成数组,例如void
swap(Object[]); //数字应当只包含两个元素
下面以整数为例介绍三种交换两个值的算法,假设有这样的声明:
void swap(Integer a, Integer b)
方法一:采用临时变量
int temp = a.value;
a.value = b.value;
b.value = temp;
方法二:使用异或
a.value ^= b.value;
b.value ^= a.value;
a.value ^= b.value;
方法三:使用求和和求差
a.value = a.value + b.value;
b.value = a.value - b.value;
a.value = a.value - b.value;
相关文档:
简而言之,这两个类是用来利用正则表达式验证字符串有效性的。
Pattern类用来定义正则表达式规则,Matcher类用来定义要验证的字符串。
用法:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
当然,也可以直接用Pattern类直接验证,用法:
boolean ......
1、commons-math/commons-lang-math
以上两个包是apache下的,前者比后者的功能强大,后者有的功能前都有,后者主要解决平时程序中的一些基本的数学计算,主要是范围判断(*Range),随机数生成(JVMRandom,RandomUtils),分数处理(Fraction),数字转化、大小判断(NumberUtils)等。前者可以处理更复杂的数据分 ......
public class Multiplication
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
for(int i = 1; i < 10; i+ ......
(
1
)
+=
:sum += 1;
相当于
sum = sum + 1;
(
2
)
++ --
:i++ i
加
1, i-- i
减
1, ++
或
—
放在数值后,表示执行运算后加(减)
1
,反正数值前表示执行运算前加(减)
1
(
3
)
?
: :
int n = a<10?1:2
表示如果
a
小于
10
则
n
等于
1
否则等于
2
(
4
......