java生成子集代码 java数组子集

求此Java代码,谢谢import java.io.*;
public class T {
public static void main(String[] args) {
File srcFile=new File("data.txt");
File desFile=new File("crpData.txt");
try {
FileInputStream fis=new FileInputStream(srcFile);
FileOutputStream fos=new FileOutputStream(desFile);
while(true){
int i=fis.read();
if(i==-1)
break;
if((i64i=88)||(i96i=120)){
i=i+3;
}
if((i88i91)||(i120i123)){
i=i-23;
}
fos.write(i);
}
fos.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行结果 srcData中内容如下java生成子集代码:
Fklqhvh Qdph:Jxrtldqj Ckdqj
Hqjolvk Qdph: Hggb Ckdqj
Vh{: Pdoh
Eruq: 6/12/82
Xqlbhuvlwb: Ehlmlqj Xqlbhuvlwb
Pdmru: Pdunhwlqj
Dgguhvv: 328#, Ehlmlqj Xqlbhuvlwb
Whohskrqh: 1398****451
Hpdlo: ****
Java怎么生成一个指定长度的字符串 , 且这个字符串必须包含大小写字母和数字这个容易,此题关键部分是
1 。了解ASCII码的定义
2 。会使用随机函数
我不想直接把代码给你写出来,因为这可能是你的试题或者家庭作业,你需要自己去练习一下,才能进步 。
但我把思路告诉你:
1. 字符串的长度不能少于3,即一个大写,一个小写,一个数字,这是最起码的,所以你可以先生成这三个字符先 , 
2 ,  这三个字符的生成采用随机数生成,但随机数不是真的随机,你可以了解一下随机函数的参数 , 呵呵,它可以设定一个随机范围 。比如你可以指定生成 0?100内的随机整数
3,指定随机范围为 0?9 从而可以生成数字
4 ,  再者指定随机范围为 65~90 得到的整数再转成char可以得到 ASCII码的大写字母
5 ,  同理指定随机范围为 97?122得小写字母
6,剩下的字符就随便随机从0?255再转成ASCII码
如果你的需求是这次序也要是随机的 , 就需要再改进这个算法,最简单的就是:
1 。FOR循环指定的长度,
2 。每次随机生成一个字符CHAR,这个CHAR的随机范围只满足我前面说过的情况,要么0?9 , 要么59?90,要么97?122,字母的话,整数要强转成CHAR才能得到字母,本身就是0?9的数字的话就不需要转了 。
3 。每次新生成的字符加上前面己生成的字符最终得到结果
4 。将结果进么检测 , 看是否满足三个条件,如果满足返回结果 , 如不满足递归函数自己再次走1?3步 。
另外如果你在第二步进行改进,记录下己经产生过数字下次希望产生字母的逻辑,则第4步就可以不需要用递归了 。具体算法自己再好好想想
JAVA题目:Java题目:用递归写n个元素的子集 static Object[] subs(Object[] chosen, int i, int n)递归问题都是千篇一律的java生成子集代码 , 将问题分为n类java生成子集代码,每一类问题又可以分为n类 。
这个问题中java生成子集代码,设a为集合,将所有子集合分为两类,有a[0]的和没a[0]的 。
有a[0]的分为两类 , 有a[1]的和没a[1]的 。
。。。
有a[n-2]的分为两类,有a[n-1]的和没a[n-1]的 。
有a[n-1]的直接返回[a[n-1]] 。
没a[n-1]的直接返回[] 。
subs(chosen,i,n){//subs为全部集合,chosen为数组,i为数组索引,从1开始,n为数组长度
if(i1){return;}
if(i==n){//当i为n时,也就是扫描完数组了 。
if(!chosen)//如果数组为空 , 也就是没有chosen[n-1]的情况
return [];//返回空数组
【java生成子集代码 java数组子集】

推荐阅读