Java工具類——數字計算工具 NumberUtil
阿新 • • 發佈:2019-01-22
- package com.luang.util.common;
- import java.util.HashSet;
- import java.util.Random;
- import java.util.Set;
- /**
- *
- * NumberUtil.java
- *
- * @desc 數字計算工具
- * @author Guoxp
- * @datatime Apr 7, 2013 3:52:29 PM
- *
- */
- publicclass NumberUtil {
- /** 生成不重複隨機數
-
* 根據給定的最小數字和最大數字,以及隨機數的個數,產生指定的不重複的陣列
- * @param begin 最小數字(包含該數)
- * @param end 最大數字(不包含該數)
- * @param size 指定產生隨機數的個數
- */
- publicint[] generateRandomNumber(int begin, int end, int size) {
- // 加入邏輯判斷,確保begin<end並且size不能大於該表示範圍
-
if (begin >= end || (end - begin) < size) {
- returnnull;
- }
- // 種子你可以隨意生成,但不能重複
- int[] seed = newint[end - begin];
- for (int i = begin; i < end; i ++) {
- seed[i - begin] = i;
- }
- int[] ranArr = newint[size];
-
Random ran = new
- // 數量你可以自己定義。
- for (int i = 0; i < size; i++) {
- // 得到一個位置
- int j = ran.nextInt(seed.length - i);
- // 得到那個位置的數值
- ranArr[i] = seed[j];
- // 將最後一個未用的數字放到這裡
- seed[j] = seed[seed.length - 1 - i];
- }
- return ranArr;
- }
- /** 生成不重複隨機數
- * 根據給定的最小數字和最大數字,以及隨機數的個數,產生指定的不重複的陣列
- * @param begin 最小數字(包含該數)
- * @param end 最大數字(不包含該數)
- * @param size 指定產生隨機數的個數
- */
- public Integer[] generateBySet(int begin, int end, int size) {
- // 加入邏輯判斷,確保begin<end並且size不能大於該表示範圍
- if (begin >= end || (end - begin) < size) {
- returnnull;
- }
- Random ran = new Random();
- Set<Integer> set = new HashSet<Integer>();
- while (set.size() < size) {
- set.add(begin + ran.nextInt(end - begin));
- }
- Integer[] ranArr = new Integer[size];
- ranArr = set.toArray(new Integer[size]);
- //ranArr = (Integer[]) set.toArray();
- return ranArr;
- }
- /**
- * 判斷String是否是整數
- */
- publicboolean isInteger(String s){
- if((s != null)&&(s!=""))
- return s.matches("^[0-9]*$");
- else
- returnfalse;
- }
- /**
- * 判斷字串是否是浮點數
- */
- publicboolean isDouble(String value) {
- try {
- Double.parseDouble(value);
- if (value.contains("."))
- returntrue;
- returnfalse;
- } catch (NumberFormatException e) {
- returnfalse;
- }
- }
- /**
- * 判斷字串是否是數字
- */
- publicboolean isNumber(String value) {
- return isInteger(value) || isDouble(value);
- }
- //排序方法
- publicstaticvoid sort(int[] array) {// 小到大的排序
- int temp = 0;
- for (int i = 0; i < array.length; i++) {
- for (int j = i; j < array.length; j++) {
- if (array[i] > array[j]) {
- temp = array[i];
- array[i] = array[j];
- array[j] = temp;
- }
- }
- }
- }
- /**
- * 是否是質數