java生成任意隨機值,字元,數字,其它的都有你來
主角:Math.random()
Math.random()是令系統隨機選取大於等於 0.0 且小於 1.0 的偽隨機 double 值,是Java、js等語言常用程式碼。
我要說的是用java語言,實現任意隨機資料
首先我們知道Math.random()是生成0.0 到 1.0之間的資料,記住包前不包後哦,意思就是包括0.0,不包括1.0 ,這是java基礎中,很多地方都是包前不包後,就不一一說明了,但是為了好理解。我們可以那麼理解
Math.random() == Math.random()*(1.0-0.0) + 0.0
如生成 2.0– 6.0之間的資料就是
Math.random()*(6.0-2.0) + 2.0;
可以知道公式為: 生成 n 到 m 之間的隨機資料為:
Math.random()*(m-n) + n;
看程式碼:
public class Random {
public static void main(String[] args) {
// 2.0 到 4.0 之間的隨機數
double num = Math.random() * (4.0-2.0) + 2.0;
System.out.println(num);
}
}
我們把它封裝一下:
public class Random {
public static void main(String[] args) {
// 2.0 到 4.0 之間的隨機數
double num = Math.random() * (4.0 - 2.0) + 2.0;
System.out.println(getRandom(2.0, 4.0));
}
//生成n到m 之間的資料
public static double getRandom(double n, double m) {
return Math.random() * (m - n) + n;
}
}
有人問了,不是說任意的嘛,說好的字元,大小寫字母….,其實特別簡單,java是可以型別強轉的!所以說知道剛剛的原理,就可以直接生成大小寫字母隨機的,但是我們要知道 ASCALL碼,簡單的如a(97) A(65)
0(48)等等
上程式碼
public class Random {
public static void main(String[] args) {
//生成 3 -- 10 之間的整數
System.out.println(getRandom(3, 10));
}
//生成n到m 之間的
public static int getRandom(int n, int m) {
return (int)(Math.random() * (m - n) + n);
}
}
想生成 指定 整數之間, 指定小數之間,都可以,直接修改強轉就可以了
public static float getRandomIn(int a, int b) {
return (float)(Math.random()* (b - a) + a);
//這個強轉, 你看著來
}
那生成指定字元呢
public class RandomChar {
public static void main(String[] args) {
System.out.println(getRandomIn('a', 'd'));
}
public static char getRandomIn(char a, char b) {
return (char) (Math.random() * (b - a) + a);
}
}
沒錯, 就是那麼簡單, 指定大寫字母也是
public class RandomBigChar {
public static void main(String[] args) {
System.out.println(getRandomIn('A', 'E'));
}
public static char getRandomIn(char a, char b) {
return (char) (Math.random() * (b - a) + a);
}
}
如果,你掌握了,可以試試這個題是如何做:
生成4位網站驗證碼
1. 不能重複
2. 只能是數字和大小寫字元, 但是不能包含1,0,o,O,l,L,Z,2,9,g
整篇部落格程式碼 ,請點選下載(包括本題答案)
下載
相關推薦
java生成任意隨機值,字元,數字,其它的都有你來
主角:Math.random() Math.random()是令系統隨機選取大於等於 0.0 且小於 1.0 的偽隨機 double 值,是Java、js等語言常用程式碼。 我要說的是用java語言,實現任意隨機資料 首先我們知道Math.random(
c/c++ 字串,字元轉數字,數字轉字元
在C/C++語言中沒有專門的字串變數,通常用字元陣列來存放字串。字串是以“\0”作為結束符。C/C++提供了豐富的字串處理函式,下面列出了幾個最常用的函式。 ● 字串輸出函式puts。 ● 字串輸出函式gets。 ● 字串連線函式strcat。 ● 字串複製
C語言字串,字元轉數字,數字轉字元
在C/C++語言中沒有專門的字串變數,通常用字元陣列來存放字串。字串是以“/0”作為結束符。C/C++提供了豐富的字串處理函式,下面列出了幾個最常用的函式。 ● 字串輸出函式puts。 ● 字串輸出函式gets。 ● 字串連線函式strcat。 ●
字串的賦值,字元與數字之間的轉換
#include<stdio.h> //法1:字串賦值 void Mystrcpy(char des,charsrc) { int i; for(i=0;src[i]!=’\0’;i++) { des[i]=src[i]; } des=’\0’; }
java中計算時間差值的方法(天數,小時數,分鐘數,秒數)
藉助joda-time來計算兩個日期的差值,包含天數,小時,分鐘,秒數: 1、joda-time-2.9.9.jar包下載地址: 2、程式碼例項: package org.joda.time.test; import java.text.ParseException;
java 位元組流讀取圖片,字元流讀取,二進位制讀取
二進位制檔案讀取圖片,其實就是用位元組流讀取圖片。其實就是用Java中提供的對位元組流操作的類去操控圖片檔案 import java.io.*; import javax.swing.*; publ
用java實現從命令行接收多個數字,求和之後輸出結果
system 程序流程圖 sta num 思想 pri for循環 含義 自動 1.設計思想 首先要了解從命令行輸入數字的含義,不需要在程序中自己定義。需要定義int類的num和sum。之後利用num=Integer.parseInt(arg);將String型轉化為int
java-生成任意格式的json數據
mob utf 功能 [] charset logs ejs response 接口 最近研究java的東西。之前靠著自己的摸索,實現了把java對象轉成json格式的數據的功能,返回給前端。當時使用的是 JSONObject.fromObject(object) 方法把j
藍橋杯(java):數列特徵,查詢整數,楊輝三角,特殊的數字,迴文數
人生無趣,生活不易,一起找點樂子吧。 數列特徵: 問題描述 給出n個數,找出這n個數的最大值,最小值,和。 輸入格式 第一行為整數n,表示數的個數。 第二行有n個數,為給定的n個數,每個數的絕對值都小於10000。 輸出格式 輸出三行,每行一個整
java生成4位不重複字元(包含大寫字母、小寫字母、數字)
需要生成4位不重複的字元作為唯一引數,要求只能使用大寫字母、小寫字母和數字的組合。大寫字母26個、小寫字母26個、10個數字共62個字元。不重複排列個數:62*62*62*62=14776336個。 /** * * @author wzp * 2016-3-18
python讀取檔案,資料讀入為字元型數字,轉換成數值型
import pandas as pdimport numpy as nppath='result.csv'order=open(path).readlines()//list型別,不過list裡存放的不是int型數值是字元型print(len(order))//獲取長度20
java-生成任意格式的json資料
private JSONObject createJSONObject() { JSONObject result = new JSONOb
Java 生成任意位數永不重複的隨機數策略實現
在專案中遇到客戶一個需求,ID的生成策略:長度8位,使用者在知道自己的ID(如:10000018)後,不能通過ID來推測相關資訊,如使用者可能推測我是第18個註冊使用者,上一個註冊使用者的ID是10000017,這樣就不能很好的保護賬號安全了,可以憑證推測資料來
從1-33個數中隨機6個不同的數字,模擬雙色球
public class Test_ext11 {/*** 隨機6個不同的雙色球紅球*/public static void main(String[] args) {int arrRed[]=new int[6]; //用來存放紅球int count =0;boolean
【JAVA程式設計題】現在輸入n個數字,以逗號,分開;然後可選擇升或者降序排序;按提交鍵就在另一頁面顯示按什麼排序,結果為,提供reset
現在輸入n個數字,以逗號,分開;然後可選擇升或者降序排序;按提交鍵就在另一頁面顯示按什麼排序,結果為,提供reset import java.util.*; public class bycomma{
3. 定義10個位元組的鍵盤緩衝區,然後鍵盤輸入字元填滿該緩衝區,做如下工作: (1)分別將輸入鍵盤緩衝區的字元按數字,小寫字母,大寫字母,其他字元進行計數; 分別將這些計數值顯示出來。 (2)分別將這
mov ah,9 int 21h mov ah,10 lea dx,buf int 21h lea dx,srlf mov ah,9 int 21h mov bx,-1 mov cx,10 lopt: add bx,1 mov al,buf[b
matlab_exercise(2)----輸入一個三位數,依次輸出其個位數字,十位數字,百位數字
code 運行程序 bsp 向下取整 第一次 col color LG span 第一次作業--第二題 輸入一個三位數,依次輸出其個位數字,十位數字,百位數字。 1 %第二題 2 %註意:將文件命名為math_2018_4_02_01.m 3 %先判斷輸入的是不是三
深入MNIST,手寫數字,加cnn
Tensorflow python from __future__ import print_function import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # number 1 t
斐波那契數列,1.1.2.3.5.8......,輸入一個數字,比如3,顯示前面三個數字1,1,2.
int 都是 AR public 運行 sca ... 3.5 info 斐波那契數列(從第三個數字開始都是前面兩個數字的和),1.1.2.3.5.8......,輸入一個數字,比如3,顯示前面三個數字1,1,2. 1 public class practice {
JAVA生成帶環的單向連結串列(針對leetcode是否有環那道題)
leetcode上面有一道題是判斷單向連結串列是否有環,方法基本上都是用快慢指標。 但是我突然想測試一下,但是不知道怎麼生成有環的連結串列,別說有環的,就是生成個連結串列都挺難的。 所以自己就在網上找了一下,發現生成連結串列還是有的。 但是沒有生成帶環的連結串列,所以自己總結了一下,寫了