根据以下条件写一段代码,打印出所有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(Korn Shell)脚本来实现打印所有可能组合的示例。Korn Shell 是一种广泛使用的Unix shell,其功能强大且兼容多种shell特性。 #### 核心知识点 1. **组合的概念**:在数学中,组合是指...
"5个字符的自由组合算法"是一个关于生成所有可能排列组合的问题,这通常涉及到组合数学和递归算法的知识。在这个问题中,我们需要生成一个字符串集合,这个集合包含了所有由5个字符组成的可能的不同序列。 首先,...
要生成不重复的字母数字组合,我们可以定义一个包含所有可能字符的字符串,例如包含大小写字母和数字的字符串,然后用`Random`类生成一个索引,从中取出一个字符。为了确保组合的唯一性,每次生成一个新组合时,我们...
例如,打印一个中文字符“中”,可以使用`^GCV,"4E2D","U",1`,其中“4E2D”是“中”的Unicode编码。 - 为了确保正确显示,还需要设置打印机的字符集,使用`^CI`命令,例如`^CI28`用于选择GB2312编码,适用于大部分...
外层循环负责生成红球的所有组合,内层循环用于生成每个红球组合对应的16种蓝球的可能性。具体的实现代码如下: ```sql DECLARE -- 定义变量 -- CNT INTEGER := 0; BEGIN -- 外层循环:生成红球的所有组合 FOR ...
在C语言中,实现输入一个字符串并打印出其所有字符排列的方法涉及到经典的排列组合问题,通常采用递归的方式来解决。这种算法称为全排列(Permutation)算法,它能生成一个集合的所有可能排列。这里我们将详细讲解...
最后,它会将这两个字符串连接起来,并打印出结果。 在这个程序中,我们可以看到多种字符串操作的实践,例如字符串的输入、字符串的转换、字符串的排序、字符串的连接等。这些操作都是字符串处理的基本操作,而这个...
### C语言打印字符图形知识点详解 ...总之,打印字符图形不仅是C语言学习过程中的一个有趣环节,也是掌握编程逻辑和循环结构的重要途径。通过实践,可以不断提升自己的编程技能和解决问题的能力。
创建一个包含所有可能字符的列表,这些字符将会被随机选择来组成田字格。 ```python list_res = ['A', 'B', 'C', ..., 'Z', 'a', 'b', 'c', ..., 'z', 0, 1, ..., 9, '_'] ``` #### 3. 定义随机字符生成函数 为了...
这个问题的主要目标是从给定的字符集中生成所有可能的子集或组合。这里我们将详细探讨两种不同的C语言实现方法。 首先,我们可以使用递归的方式来解决这个问题。递归的核心思想是将大问题分解为小问题来处理。在...
在C++编程语言中,打印字符是...在提供的文件`C语言中文网.txt`中,可能包含了更多关于C++打印字符的教程或示例,你可以参考这个资源来深化理解。通过不断实践和学习,你将在C++的字符和字符串输出方面变得更加熟练。
在Java编程语言中,列出一个字符串的所有大小写组合是一个常见的任务,特别是在进行字符串处理或算法练习时。这个任务可以通过递归或循环等方法实现。以下是一个详细的解释: 首先,我们需要理解问题的核心:对于一...
描述中的“送命令打印字符”意味着程序会直接向打印机发送指令,而不是通过打印文档或使用预构建的打印组件。这种方式的优点在于能够实现更精细的控制,但同时也需要开发者对打印机控制语言有深入的理解。 在压缩包...
简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。
这可以通过在ZPL指令字符串中组合多个^FO、^BC、^FDb等命令来实现。例如,为产品标签添加产品名称和描述: ```zpl ^FO10,50^A0N,30,30^FD产品名称^FS ^FO10,80^A0N,20,20^FD产品描述^FS ``` `ZplPrinterUtil`类...
这个功能在处理一些数据选取或迭代时特别有用,比如在打印大量页面时,用户可能会提供一个这样的字符串来指定需要打印的页面范围,程序则可以方便地根据这个字符串生成对应的页面索引列表。 标签“语言基础”提示...
通常,当数据窗口内的文本过长无法在一行内完全显示时,PB会默认处理折行,但可能不会在合适的字符处断开,比如编号或款号的英文数字组合。这可能导致打印效果不佳,阅读困难。为了优化这种情况,开发者可以编写...
五、一个字符串,获取最长的一个单词,如有多个相同长度的单词返回第一个单词。入输入:"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`指令,配合特定参数,将二维码...
为了满足这些特定需求,【金山特大字打印】软件应运而生。这款工具不仅仅是为了简单地放大文字,更是在保持文字美观和可读性的前提下,实现单个汉字的特大尺寸打印。它通过精确的图像处理技术,确保放大后的汉字依然...