文档章节

java随机生成号码增强版

不最醉不龟归
 不最醉不龟归
发布于 2017/08/31 18:43
字数 717
阅读 54
收藏 2

本文永久地址:https://my.oschina.net/bysu/blog/1527148

前阵子写了一篇博客,主要就是随机生成手机号码。随着工作上的使用,对之前的生成进行优化与改进,于是便有了下文。

先把效果贴出来吧~

获取本地记录文件行数相关类

GetSourceFileLineNo.java

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class GetSourceFileLineNo{

    public static void main(String[] args) {
		getLimitRecord("./result.txt");
    }
	
	public static void getLimitRecord(String filePath){
		BufferedReader br = null;
		String tempStr = "";
		int count = 0;
		int allLineOfFile = getSourceFileLineNo(filePath);
		try{
			br = new BufferedReader(new FileReader(new File(filePath)));
			while((tempStr=br.readLine())!=null){
				if((allLineOfFile - count++)<=10){
					System.out.println(tempStr);
				}
			}
		}catch(IOException e){
			System.out.println("没有该文件或目录");
			e.printStackTrace();
		}finally{
			try{
				br.close();
			}catch(IOException e){
				System.out.println("关闭以前关闭的流无效~!");
				e.printStackTrace();
			}
		}
	}
	
	//Gets all lines of file
	public static int getSourceFileLineNo(String filePath){
		BufferedReader br = null ;
		String tempStr = "";
			int count = 0;
		try{
			br = new BufferedReader(new FileReader(new File(filePath)));
			while((tempStr=br.readLine())!=null){
				count ++;
			}
		}catch(IOException fnf){
			System.out.println("没有该文件或目录");
			fnf.printStackTrace();
			
		}finally{
			try{
				br.close();
			}catch(IOException e){
				System.out.println("关闭以前关闭的流无效~!");
				e.printStackTrace();
			}
		}
		return count;
	}
}

 

结果写入本地类

WriteResultToTxt.java

import java.io.IOException;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.File;
import java.util.Date;
import java.text.SimpleDateFormat;

public class WriteResultToTxt{
	public static void writeResult(String textContent){
		String resultText = textContent;
		try{
			BufferedWriter bw = new BufferedWriter(new FileWriter(new File(".\\result.txt"),true));
			bw.write(resultText,0,resultText.length());
			bw.newLine();
			bw.close();
			
		}catch(IOException e){
			
		}
		
	}
	
	public static String getSystemTime(){
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:MM:SS");//设置日期格式
		String systemTime = df.format(new Date());// new Date()为获取当前系统时间
		return systemTime;
	}
}

随机生成手机号类

MobileRandomNum.java

import java.util.ArrayList;
import java.util.Random;

public class MobileRandomNum {
	static String channelName = "";
    	
	//随机生成手机号码前3位
    public static int startMobileNo(){
        int[] mobileStart = {139,138,137,136,135,134,159,158,157,150,151,152,188,130,131,132,156,155,133,153,189,180,177,176};
        Random r = new Random();
        ArrayList<Integer> mobileList = new ArrayList<>();
        for(int i = 0;i<mobileStart.length;i++){
            mobileList.add(mobileStart[i]);
        }
        return mobileList.get(r.nextInt(mobileList.size()));
    }
    
	//随机生成手机号码后8位
    public static String endMobileNo(){
        Random r = new Random();
        String temp = "";
        for(int i=0;i<8;i++){
			if(i==4){
				temp += "-";
			}
            temp += r.nextInt(10);
        }
        return temp;
    }
	
}

选择渠道类

ChooseChannel.java

import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.Scanner;

public class ChooseChannel{
	public static String channelName(){
		//System.out.println("请输入渠道:1.蚂蚁开户;2.常规开户;3.保单开户;4.融资融券预开户...");
		Scanner scan = new Scanner(System.in);
		String is_result = String.valueOf(scan.nextInt());
		switch(is_result){
			case "1":
			is_result = "蚂蚁开户";
			break;
			case "2":
			is_result = "常规开户";
			break;
			case "3":
			is_result = "保单开户";
			break;
			case "4":
			is_result = "融资融券预开户";
			break;
			default:
			is_result = "其他";
			System.out.println("是否需要备注:\"Y\" or \"N\"?");
			Scanner scanOther = new Scanner(System.in);
			String temp_result = scanOther.nextLine();
			if(temp_result.equalsIgnoreCase("Y")){
				System.out.println("请输入备注,并回车");
				is_result = scanOther.nextLine();
			}
		}
		return is_result;
	}
	
	//在console输出选项内容,如果选的是5,且需要备注,那么就不再次输出
	public static String consolePrint(String channelName){
		String result = channelName;
		Pattern p = Pattern.compile(".+开户");
		Matcher m = p.matcher(result);
		
		if(m.matches() || result.equals("其他")){
			return result;
		}else return "";
	}
}

 

最后的批处理文件.bat

@echo off
echo "最近的历史记录~:"
javac -encoding utf8 .\GetSourceFileLineNo.java
for /f "delims=" %%i in ('java GetSourceFileLineNo') do (
    echo %%i
)

:1
echo "请输入渠道:1.蚂蚁开户;2.常规开户;3.保单开户;4.融资融券预开户;5.其他..."
javac -encoding utf8 .\TestGeneratorNumber.java
java TestGeneratorNumber

pause
goto 1

 

注意:文件都放在同一个文件夹,然后运行批处理就可以了。

 

 

© 著作权归作者所有

共有 人打赏支持
不最醉不龟归
粉丝 19
博文 426
码字总数 446826
作品 0
深圳
程序员
私信 提问
加载中

评论(2)

不最醉不龟归
不最醉不龟归

引用来自“断崖逐梦”的评论

变态的需求��������
自己用而已😁
断崖逐梦
断崖逐梦
变态的需求��������
Java 7 技术的新纪元

预计于今年秋天将最终发布的 Java 平台最新更新意义重大且倍受期待。虽然尚未通过 Java Community Process (JCP) 正式创建 Java 7 平台 Java Specification Request (JSR),并且最终特性集仍...

红薯
2010/06/07
565
2
Java平台标准版Oracle JDK 9中的新增功能

官方文档 https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-C23AFD78-C777-460B-8ACE-58BE5EA681F6 pdf下载 https://docs.oracle.com/javase/9/whatsnew/JSNEW.pdf 原文翻译:......

两毛五哥哥
2017/12/05
0
0
Java深度理解——Java字节代码的操纵

导读:Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展。但是对于 Java语言的深度理解和运用,毕竟是很少会有人涉及...

刘学炜
2012/01/13
0
0
Sharding-JDBC — 读写分离(spring boot)

我们的项目,很多都涉及到了数据库的操作。数据库的稳定性显得尤为重要。互联网公司很多都采用“一主多从”的实现方案,我这里也不例外。这样可以大大减少主库的读压力,从而提高数据库性能!...

小王穷遊
2018/05/25
0
0
深度探讨Java字节代码的操纵方法

本文为IBM工程师成富编写的《Java深度历险》的第一部分Java字节代码的操纵,像这样Java语言的深度理解和运用还没有很多文章,我们把他奉献给读者,希望读者们喜欢。 51CTO编者按:我们曾给大...

mj4738
2011/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
7
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
4
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部