Java 如何编码一个特殊的随机数方案?
我正在学习Java。我只想写一个方法,生成特定集合中的随机数,比如银行信用卡“xxxx-xxxx-xxxx-xxxx”。每个数据块的长度必须正好为4位数。有人有办法吗Java 如何编码一个特殊的随机数方案?,java,Java,我正在学习Java。我只想写一个方法,生成特定集合中的随机数,比如银行信用卡“xxxx-xxxx-xxxx-xxxx”。每个数据块的长度必须正好为4位数。有人有办法吗 public class Main { 公共静态用户帐户持有人[]=新用户[100]; 公共静态int索引=0 public static void main(String[] args) { Scanner input = new Scanner(System.in); while (true) {
public class Main {
公共静态用户帐户持有人[]=新用户[100];
公共静态int索引=0
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("\t-----\tWelcome to The Bank portal\t-----");
System.out.println("\nPlease enter the number of your required action");
System.out.println("\n1) Make a Deposit");
System.out.println("2) Get balance");
System.out.println("3) Register new account");
System.out.println("0) Quit the portal");
int command = input.nextInt();
switch (command) {
case 1:
InputController.deposit();
break;
case 2:
InputController.balance();
break;
case 3:
User user = InputController.register();
accountHolders[index] = user;
index++;
break;
default:
System.out.println("Wrong input! please enter a number between 1 - 4!!!");
break;
}
}
}
}
}
}
公共类InputController{
静态扫描仪输入=新扫描仪(System.in);
公共静态用户寄存器(){
System.out.print(“输入您的姓名:”);
String name=input.next();
System.out.print(“输入密码:”);
int password=input.nextInt();
System.out.print(“请输入您的初始存款金额:”);
int balance=input.nextInt();
账户=新账户(密码、余额);
用户=新用户(名称、帐户);
System.out.print(“您的账号是:+account.getUniID());
返回用户;
}
公共静态无效余额(){
int index=findAccount();
如果(索引!=-1){
System.out.print(“输入密码:”);
int password=input.nextInt();
if(Main.accountHolders[index].getAccount().getPassword()==密码){
System.out.println(“您的余额为:”+
Main.accountHolders[index].getAccount().getBalance();
}否则{
System.out.println(“错误密码”);
}
}
}
公众静态无效存款(){
int index=findAccount();
如果(索引!=-1){
系统输出打印(“输入所需金额:”);
int money=input.nextInt();
Main.accountHolders[index].getAccount().makeDeposit(money);
System.out.println(“存款成功”);
}
}
私有静态int findAccount(){
系统输出打印(“请输入您的账号:”);
int accountNum=input.nextInt();
for(int i=0;i
对不起,有点长,但现在这就是全部。每次信用卡号用户注册新帐户时,我想为他们引入一个新变量。您可以尝试下面的代码吗。如果您只需要一次,请删除for循环
public class RandomSetGenerator {
public static void main(String[] args) {
Random generator = new Random();
for (int i = 0; i < 10; i++) {
String string = Integer.toString(generator.nextInt(9000) + 1000) + "-" + Integer.toString(generator.nextInt(9000) + 1000) + "-" + Integer.toString(generator.nextInt(9000) + 1000) + "-" + Integer.toString(generator.nextInt(9000) + 1000);
System.out.println("Specific set of random number generated :" + string);
}
}}
公共类随机集生成器{
公共静态void main(字符串[]args){
随机生成器=新随机();
对于(int i=0;i<10;i++){
字符串字符串=Integer.toString(generator.nextInt(9000)+1000)+“-”+Integer.toString(generator.nextInt(9000)+1000)+“-”+Integer.toString(generator.nextInt(9000)+1000)+“-”+Integer.toString(generator.nextInt(9000)+1000);
System.out.println(“生成的特定随机数集:“+字符串”);
}
}}
创建一个函数,该函数给出一个范围内的随机数,并使用它生成相同的值:
公共类随机集生成器{
公共字符串genNumberToString(inti,intj){
随机生成器=新随机();
返回整数.toString(生成器.nextInt(i)+j)
}
公共静态void main(字符串[]args){
对于(int i=0;i<10;i++){
String str=genNumberToString(9000,1000)+“-”+genNumberToString(9000,1000)+“-”+genNumberToString(9000,1000)+“-”+genNumberToString(9000,1000);
System.out.println(“生成的特定随机数集:“+str”);
}
}}
请展示您迄今为止所做的尝试,并解释您遇到的问题。我已经添加了代码。@请养成对有助于您的答案进行投票的习惯:)我想这确实完成了对方的要求
public class User {
private String name;
private Account account;
public String getName() {
return name;
}
public Account getAccount() {
return account;
}
public User(String name, Account account) {
this.name = name;
this.account = account;
}
public class InputController {
static Scanner input = new Scanner(System.in);
public static User register() {
System.out.print("Enter your name: ");
String name = input.next();
System.out.print("Enter your password: ");
int password = input.nextInt();
System.out.print("Please enter the amount of your initial deposit: ");
int balance = input.nextInt();
Account account = new Account(password, balance);
User user = new User(name, account);
System.out.print("Your account number is: " + account.getUniID());
return user;
}
public static void balance() {
int index = findAccount();
if (index != -1) {
System.out.print("Enter your password: ");
int password = input.nextInt();
if (Main.accountHolders[index].getAccount().getPassword() == password) {
System.out.println("Your balance is: " +
Main.accountHolders[index].getAccount().getBalance());
} else {
System.out.println("Wrong password");
}
}
}
public static void deposit() {
int index = findAccount();
if (index != -1) {
System.out.print("Enter the required amount: ");
int money = input.nextInt();
Main.accountHolders[index].getAccount().makeDeposit(money);
System.out.println("Deposit successful");
}
}
private static int findAccount() {
System.out.print("Please Enter your account number: ");
int accountNum = input.nextInt();
for (int i = 0; i < Main.index; i++) {
User user = Main.accountHolders[i];
int id = user.getAccount().getUniID();
if (id == accountNum) {
return i;
} else if (id != accountNum){
System.out.println("Account number not found");
}
}
return -1;
}
}
public class RandomSetGenerator {
public static void main(String[] args) {
Random generator = new Random();
for (int i = 0; i < 10; i++) {
String string = Integer.toString(generator.nextInt(9000) + 1000) + "-" + Integer.toString(generator.nextInt(9000) + 1000) + "-" + Integer.toString(generator.nextInt(9000) + 1000) + "-" + Integer.toString(generator.nextInt(9000) + 1000);
System.out.println("Specific set of random number generated :" + string);
}
}}