随机生成唯一的四位字符串-由大小写字母和数字组成

---法1:数据库方法
create or replace function FUNC_GEN_PAY_ID

return CHAR
is
   v_param        varchar(1);--字符参数
   v_payid_param  varchar(4);--字符累加
   v_pay_id       varchar(4);--4位字符
   v_x            number;--循环的次数变量
   v_y            number;--是否生成 1:是  0:否
   v_rowCnt       number ;
begin
  --初始值
  v_x :=1;
  v_y :=1;
  v_payid_param :=‘‘;
  WHILE v_y =1 LOOP
    FOR v_x IN REVERSE 1 .. 4 LOOP
      select * into v_param from(
        select *
        from(
        select chr(ascii(‘A‘)+ROWNUM-1) S from dual connect by rownum<=26
        UNION  ALL
        select chr(ascii(‘a‘)+ROWNUM-1) S from dual connect by rownum<=26
        UNION  ALL
        select chr(ascii(‘0‘)+ROWNUM-1) S from dual connect by rownum<=10
        )ORDER BY dbms_random.value)
      where rownum<2;
      v_payid_param :=v_payid_param||v_param;
    END LOOP;
    SELECT COUNT(*)
    INTO v_rowCnt
    FROM DUAL
    WHERE EXISTS(
      SELECT 1
        FROM yst_pay_info
        WHERE  is_delete = ‘0‘
          AND  pay_id=v_payid_param);
    IF v_rowCnt = 1 THEN
      v_y :=1;
    ELSE
      v_pay_id :=v_payid_param;
      v_y :=0;
    END IF;
  END LOOP;
  return(v_pay_id);
end FUNC_GEN_PAY_ID;

--法2:Java方法(未校验是否唯一)

public class aa {

/**
   * @param args
   */
  public static void main(String[] args) {
  
    System.out.println(get4Code());
  }
  public static  String get4Code(){
    StringBuffer sb = new StringBuffer();
    String codes ="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
    Random random = new Random();
    for(int i=0;i<codes.length();i++){
      char c = codes.charAt(random.nextInt(codes.length()));
      System.out.println(c);
      if(sb.length()==4) break;
      if(!sb.toString().contains(c+"")) sb.append(c);
    }
    return sb.toString();
  }

}

时间: 2024-10-15 22:51:04

随机生成唯一的四位字符串-由大小写字母和数字组成的相关文章

php面试题:如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。

如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码. $str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";//任意长度字符串 //解法一(最快速的解法,但是基本功要扎实) $arr=str_split($str); $arr=array_count_values($arr); arsort($arr); print_r($arr); //解法二(对逻辑能力有一定要求)

Python 使用正则表达式验证密码必须包含大小写字母和数字

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px ".PingFang SC Light" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue" } span.s1 { font: 14.0px "Helvetica Neue" } span.s2 { font: 14.0px ".PingF

Python判断字符串是否为字母或者数字(浮点数)

str为字符串s为字符串 str.isalnum() 所有字符都是数字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 str.isspace() 所有字符都是空白字符.\t.\n.\r 检查字符串是数字/浮点数方法 float部分 >> float('Nan') nan >> float('Nan') nan >> float('nan') nan >> float('INF') inf >>

python内置的一个好玩的函数-zip,并且巧妙的实现按概率随机生成有限个数的字符串。

python有一个比较有意思的内置函数-----zip,可以把传入的两组list进行一个组合变形,再输出子元素为tuple的list,不过变形的方式比较抽象. 举个例子: A=[1,2,3,4,5,6] B=['a','b','c','d'] v1=zip(A,B) v1的结果为: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')] 比较直观的理解就是,A和B是两道拉链上的扣子,生成的list的子tuple,每一组tuple就是一对扣好了的扣子,并且从每组list的

java如何随机生成定长的字符串

小数,字符串.时间等示例代码 public class RandomTest { public static Random rand = new Random(); public static String dateStart = "2017-01-01 00:00:00"; /** * hh 表示12小时制 * HH 表示24小时制 */ public static SimpleDateFormat format = new SimpleDateFormat("YYYY-M

4.java随机生成指定长度的字符串

//生成随机数字和字母, public static String getStringRandom(int length) { String val = ""; Random random = new Random(); //参数length,表示生成几位随机数 for(int i = 0; i < length; i++) { String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num

利用列表统计字符串大小写字母,数字和其他字符

你好,我叫布小不 储备知识: 1.Python元组,列表的创建,添加与转化等 2.函数的自定义与调用 题目: 请用户输入一个字符串,统计出其中的大写字母,小写字母,数字和其他字符的个数,返回结果以元组的形式输出 例: 输入:E3r4t5y6~. 输出:字符串中大写字母有1个,小写字母有3个,数字有4个,其他字符有2个 (1, 3, 4, 2) 答: def func1(s): upCount, lowCount, digCount, otherCount = 0, 0, 0, 0 aList =

java uuid 随机生成唯一序列号

UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得

python3----输出所有大小写字母及数字

1. 用一行输出所有大(小)写字母,以及数字 1 print([chr(i) for i in range(65, 91)]) # 所有大写字母 2 print([chr(i) for i in range(97, 123)]) # 所有小写字母 3 print([chr(i) for i in range(48, 58)]) # 所有数字 4 5 #################### 6 ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',