`
独二无一1102
  • 浏览: 17393 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

打印出所有5个字符的可能组合

    博客分类:
  • java
阅读更多
根据以下条件写一段代码,打印出所有5个字符的可能组合:
1. 至少有一个大写字母
2. 至少有一个小写字母
3. 至少有一个数字
4.两个一样的数或者字母不能连在一起(比如 Haxa5是可以的,Haax5就不可以)

public static void print(){
		String upper[] = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
		String lower[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
		String num[] = {"0","1","2","3","4","5","6","7","8","9"};
		
		String all[] = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
				"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
				"0","1","2","3","4","5","6","7","8","9"};
		String result = "";
		for(int i=0;i<upper.length;i++){
			for(int j=0;j<lower.length;j++){
				for(int m=0;m<num.length;m++){
					for(int n=0;n<all.length;n++){
						for(int k=0;k<all.length;k++){
							result+=upper[i]+lower[j]+num[m]+all[n]+all[k];
							randomGroup(result);
							result="";
						}
					}
				}
			}
		}
		
	}
	
	public static void main(String[] args) {
		print();
	}
	
	/**
	 * 给五个字符的字符串的随机组合
	 *
	 */
	public static void randomGroup(String fiveChar){
		char c[]=fiveChar.toCharArray();
		println(c);
		allCombString(c,0); 
	}

	/**
	 * 相邻字母是否相同
	 * @param c
	 * @return
	 */
	private static boolean isSameLetter(char c[]){
		for(int i=0;i<c.length-1;i++){
			if(c[i] == c[i+1]){
				return false;
			}
		}
		return true;
	}
	
	public static void allCombString(char[] c, int s) {
		int l = c.length;
		if (l - s == 2) {
			char temp = c[l - 1];
			c[l - 1] = c[l - 2];
			c[l - 2] = temp;
			println(c);
		} else {
			for (int i = s; i < l; i++) {
				moveToHead(c, i, s);
				char ct[] = new char[l];
				System.arraycopy(c, 0, ct, 0, l);// 保持其他元素位置不变
				allCombString(ct, s + 1);
			}
		}
	}

	public static void moveToHead(char[] c, int id, int s) {
		if (id > s && id < c.length) {
			char temp = c[id];
			for (int i = id; i > s; i--) {
				c[i] = c[i - 1];
			}
			c[s] = temp;
			println(c);
		}
	}

	public static void println(char[] c) {
		if(isSameLetter(c)){//相邻字符不一样
			System.out.print(new String(c)+"、");
		}
	}
分享到:
评论

相关推荐

    用ksh打印所有组合

    本篇内容介绍了一个使用KSH(Korn Shell)脚本来实现打印所有可能组合的示例。Korn Shell 是一种广泛使用的Unix shell,其功能强大且兼容多种shell特性。 #### 核心知识点 1. **组合的概念**:在数学中,组合是指...

    5个字符的自由组合 算法

    "5个字符的自由组合算法"是一个关于生成所有可能排列组合的问题,这通常涉及到组合数学和递归算法的知识。在这个问题中,我们需要生成一个字符串集合,这个集合包含了所有由5个字符组成的可能的不同序列。 首先,...

    C#生成不重复字母数字组合的随机数

    要生成不重复的字母数字组合,我们可以定义一个包含所有可能字符的字符串,例如包含大小写字母和数字的字符串,然后用`Random`类生成一个索引,从中取出一个字符。为了确保组合的唯一性,每次生成一个新组合时,我们...

    ZEBRA 中文打印&特殊字符打印

    例如,打印一个中文字符“中”,可以使用`^GCV,"4E2D","U",1`,其中“4E2D”是“中”的Unicode编码。 - 为了确保正确显示,还需要设置打印机的字符集,使用`^CI`命令,例如`^CI28`用于选择GB2312编码,适用于大部分...

    PL_SQL生成双色球所有组合

    外层循环负责生成红球的所有组合,内层循环用于生成每个红球组合对应的16种蓝球的可能性。具体的实现代码如下: ```sql DECLARE -- 定义变量 -- CNT INTEGER := 0; BEGIN -- 外层循环:生成红球的所有组合 FOR ...

    C语言实现输入一个字符串后打印出该字符串中字符的所有排列

    在C语言中,实现输入一个字符串并打印出其所有字符排列的方法涉及到经典的排列组合问题,通常采用递归的方式来解决。这种算法称为全排列(Permutation)算法,它能生成一个集合的所有可能排列。这里我们将详细讲解...

    组合两个字符数组,并排序

    最后,它会将这两个字符串连接起来,并打印出结果。 在这个程序中,我们可以看到多种字符串操作的实践,例如字符串的输入、字符串的转换、字符串的排序、字符串的连接等。这些操作都是字符串处理的基本操作,而这个...

    C语言打印字符图形

    ### C语言打印字符图形知识点详解 ...总之,打印字符图形不仅是C语言学习过程中的一个有趣环节,也是掌握编程逻辑和循环结构的重要途径。通过实践,可以不断提升自己的编程技能和解决问题的能力。

    python打印由1中列表的内容构成一个“田”字格图形,长度可任意指定输入。

    创建一个包含所有可能字符的列表,这些字符将会被随机选择来组成田字格。 ```python list_res = ['A', 'B', 'C', ..., 'Z', 'a', 'b', 'c', ..., 'z', 0, 1, ..., 9, '_'] ``` #### 3. 定义随机字符生成函数 为了...

    字符串的组合算法问题的C语言实现攻略

    这个问题的主要目标是从给定的字符集中生成所有可能的子集或组合。这里我们将详细探讨两种不同的C语言实现方法。 首先,我们可以使用递归的方式来解决这个问题。递归的核心思想是将大问题分解为小问题来处理。在...

    C++第3课让计算机打印出字符

    在C++编程语言中,打印字符是...在提供的文件`C语言中文网.txt`中,可能包含了更多关于C++打印字符的教程或示例,你可以参考这个资源来深化理解。通过不断实践和学习,你将在C++的字符和字符串输出方面变得更加熟练。

    java代码-列出所有字符串中大小写的组合

    在Java编程语言中,列出一个字符串的所有大小写组合是一个常见的任务,特别是在进行字符串处理或算法练习时。这个任务可以通过递归或循环等方法实现。以下是一个详细的解释: 首先,我们需要理解问题的核心:对于一...

    Delphi点阵打印,送命令打印字符..rar

    描述中的“送命令打印字符”意味着程序会直接向打印机发送指令,而不是通过打印文档或使用预构建的打印组件。这种方式的优点在于能够实现更精细的控制,但同时也需要开发者对打印机控制语言有深入的理解。 在压缩包...

    输出n个字符的全排列(没有重复字符)

    简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。

    Java调用Zebra条码打印机打印条码、中英文数字条码混合标签

    这可以通过在ZPL指令字符串中组合多个^FO、^BC、^FDb等命令来实现。例如,为产品标签添加产品名称和描述: ```zpl ^FO10,50^A0N,30,30^FD产品名称^FS ^FO10,80^A0N,20,20^FD产品描述^FS ``` `ZplPrinterUtil`类...

    matlab开发-用于数字循环打印页面选择的列操作

    这个功能在处理一些数据选取或迭代时特别有用,比如在打印大量页面时,用户可能会提供一个这样的字符串来指定需要打印的页面范围,程序则可以方便地根据这个字符串生成对应的页面索引列表。 标签“语言基础”提示...

    字符串 数组、字母和ASCII值应用

    五、一个字符串,获取最长的一个单词,如有多个相同长度的单词返回第一个单词。入输入:"hello china"则返回 hello 六、将一个字符里出现最多的字母截取,如,addcbbs变为acs。 七、输入一个整型...

    微信小程序连接蓝牙打印机打印文字图片实例程序

    将图片转成Base64字符串后,可以通过一系列ESC/POS指令(如GS ( V n、GS ( L n m x y、GS ( P n m x y)组合使用,来绘制图片。 6. **打印二维码**:要打印二维码,可以使用`GS ( K n`指令,配合特定参数,将二维码...

    获取数字、字母、退出键、Enter键和Ctrl组合键等的ASCII码

    退出键的ASCII码是27,这是一个控制字符,它在ASCII表中位于非打印字符区。Enter键的ASCII码是13,也称为回车符,用于结束一行输入或确认一个命令。 Ctrl组合键的ASCII表示通常涉及到ASCII码的前16个值,即0到15。...

    七个字母排列组合的小程序

    今天 写了一个java小程序 是将a,b,c,d,e,f,g这7个字母的全排列打印出来,排除a,d相邻的情况 算然很简单 但是我用递归调用的方式写的 算法还是很不错的 建议新手们学习 看不懂或者有更好的想法的的请留言^_-

Global site tag (gtag.js) - Google Analytics