两道Java题目,具体如下
发布网友
发布时间:2022-05-01 18:24
我来回答
共3个回答
热心网友
时间:2022-06-21 04:00
//第一题:
import java.util.*;
//编写一个函数,用于生成随机密码,入参为随机密码的长度,返回生成的随机密码.要求生成的随机密码必须同时包含大写字母,小写字母和数字.
public class B1 {
public static void main(String[] args){
System.out.println(getPassword(9));//调用getPassword方法,然后输出打印返回的密码
}
public static String getPassword(int length){
ArrayList al = new ArrayList();//定义一个集合存储a-z和A-Z还有0-9
String password = "";
for(int x = 'a';x < 'a'+26;x++){//存入a-z
al.add((char)x);
}
for(int x = 'A';x < 'A'+26;x++){//存入A-Z
al.add((char)x);
}
for(int x = 0;x <= 9;x++){//存入0-9
al.add(x);
}
for(int x = 0;x<length;x++){//按照传递进来的长度循环随机
int n = (int)(Math.random()*al.size());//随机数
password += al.get(n);//获取随机到的密码
}
return password;//返回随机好的密码
}
}
//第二题:
import java.io.*;
//编写一个函数,实现从磁盘读取一个文本文件,将内容逐行输出.注意需要包含异常处理代码
public class B2 {
public static void main(String[] args){
printFile(new File("d:\\io.txt"));
}
public static void printFile(File file){
BufferedReader bfr = null;
try{
bfr = new BufferedReader(new FileReader(file));
String value = null;
while((value = bfr.readLine())!=null){
System.out.println(value);
}
}
catch(IOException e){
System.out.println("文件读取失败!");
}
finally{
try{
if(bfr != null)
bfr.close();
}
catch(IOException e){
System.out.println("读取流关闭失败!");
}
}
}
}
热心网友
时间:2022-06-21 04:01
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* file IO流读取并输出文件
* @author young
*
*/
public class FileIO {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("c:/1.txt");// 要读的文件路径
InputStreamReader isr = new InputStreamReader(fis);// 字符流
BufferedReader br = new BufferedReader(isr); // 缓冲
String line = null;
while ((line = br.readLine()) != null) {// 字符不等于空
System.out.println(line);// 一行一行地输出
}
br.close();// 关闭文件
}
}
在C盘新建1.txt文本文件,随意输入内容,运行代码读取其中内容并输出。
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
/**
* 两种方式生成随机密码,包括数字,大写字母,小写字母
* @author young
*/
public class PassWordTest {
public static String pwd(int length){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
int a = Math.abs((new Random()).nextInt(57));// 产生0~57的随机数
if (a <= 9) {// 将0~9转为char的0~9
sb.append((char) (a + 48));
} else if (a < 33) {// 将10~33转为char的A~Z
sb.append((char) (a + 55));
} else {// 将33~57转为char的a~z
sb.append((char) (a + 63));
}
}
return sb.toString();
}
public static void main(String agrs[]) {
Scanner sc = new Scanner(System.in);
System.out.println("输入随机密码的长度:");
int num = sc.nextInt();
System.out.println("随机生成密码为:" + pwd(num));;
}
}
热心网友
时间:2022-06-21 04:01
这是作业还是面试题……不管怎样,还是需要自己理解运用。给你些提示吧。
第一题,建三个数组分别存大小写字母和数字,随机从中取值并拼接。生成随机数可使用Random类,具体从网上查资料吧。
第二题。InputStream 和 InputStreamReader类。简单示例
Set<String> set = null;
InputStream resourceAsStream = getClass().getResource("test.txt").openStream();
InputStreamReader read = new InputStreamReader(resourceAsStream,"utf-8");
try {
if(read!= null){ //文件流是否存在
set = new HashSet<String>();
BufferedReader bufferedReader = new BufferedReader(read);
String txt = null;
while((txt = bufferedReader.readLine()) != null){ //读取文件,将文件内容放入到set中
set.add(txt);
}
}
}finally{
read.close(); //关闭文件流
}
return set;
这里没有异常处理,自己再查资料很容易能找到