
正文
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: ****
相关问答
Q1: 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步就可以不需要用递归了。具体算法自己再好好想想
Q2: 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 [];//返回空数组
}else{
return [chosen[i-1]];//否则为有a[n-1]的情况
}
arr1=subs(delete_arr_index(chosen,i-1),i+1,n);//没chosen[i-1]的情况,当i=1时,也就是求得没有a[0]的所有集合。
arr2=subs(chosen,i+1,n);//有chosen[i-1]的情况,当i=1时,也就是求得有a[0]的所有集合。
arr=arr1+arr2//合并数组,当i=1时,就是获得了全部集合。
return arr;
}
//删除数组中的某个元素
public static void delete_arr_index(str,index) {
//删除php
Listint list = new ArrayListint();
for (int i=0; istr.length; i++) {
list.add(str[i]);
}
list.remove(index);
int[] newStr = list.toArray(new int[1]);
reuturn newStr;
}
Q3: java 求集合的所有非空子集
前几天刚回答了一个类似的问题
public class T{
public static void main(String[] args) {
String str="abcac" ;
//用Set集合保存结果java生成子集代码,保证内容不重复
SetString set = new HashSetString();
//最外层循环控制指针移动位置 从 a 依次移动顺序 为 a b c a c
for(int i=0 ; istr.length() ; i++){
//从指针所在位置开始内层遍历
for(int k= i ; kstr.length() ; k++){
//从指针位置处开始截取字符串java生成子集代码,直到截到 字符串结尾
String res = str.substring(i , k+1);
//如果当前字符串和原始字符串相同,不放入集合中,该种情况不是子串
if(res ==str) continue ;
set.add(res);
}
}
//遍历结果
for(String s : set){
System.out.println(s);
}
}
}
关于java生成子集代码和java数组子集的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






