该练习题主要对Java中的数组,排序,IO流,循环,异常,集合,StringBuffer类以及Random函数进行考察
重点!全是重点!!!
1、 编写Java程序,输入数组data的3个整数,并求出三个整数的最大值、最小值。
public class T1 {
public static void main(String []args) {
int [] data=new int[]{3,5,7};
int tmp;
for(int i=0;i<data.length-1;i++){
for(int j=0;j<data.length-1-i;j++)
{
if(data[j]>data[j+1])
{
tmp=data[j+1];
data[j+1]=data[j];
data[j]=tmp;
}
}
}
for(int i=0;i<data.length;i++){
System.out.println(data[i]);
}
System.out.println("最小值为:"+data[0]);
System.out.println("最大值为:"+data[2]);
}
}
2、 从键盘输入文件的内容和要保存的文件名称,之后根据输入的名称创建文件,并将内容保存到文件之中
import java.io.File;
import java.util.Scanner;
import java.io.*;
public class T2 {
public static void main(String[] args) throws Exception{
Scanner scan = new Scanner(System.in);
String filename = null;
String filecont = null;
scan.useDelimiter("\n");//设置分隔符
System.out.println("输入文章标题:");
if(scan.hasNext()){
filename = scan.next();//取出数据
System.out.print("请输入文件内容:");
//判断是否有数据存在
if(scan.hasNext()){
filecont = scan.next();
File file = new File("D:" + File.separator + "Desktop" + File.separator + "MyCodes" + File.separator + (filename.trim() + ".txt"));
//判断父路径是否存在,若没有则创建
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
//本程序在实例化PrintStream类对象时传递了一个FileOutputStream类对象
//表示进行文件内容的输出
//FileOutputStream会创建文件
PrintStream out = new PrintStream(new FileOutputStream(file));
out.print(filecont);
out.close();
}
}
}
}
3、 编写程序,程序运行后,根据屏幕提示输入一个数字字符串,输入后统计有多少个偶数数字和奇数数字。
package com.qone;
import java.util.Scanner;
public class T3 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入一个数字字符串:");
String a=s.next(); //输入字符串
int i,j,ou=0,ji=0;
for ( i=0;i<a.length();i++) {
char k=a.charAt(i); //选择单个字符赋值为char型
j=Integer.parseInt(String.valueOf(k)); //强制转换,将char型转为int型
if(j%2==0)
{
ou++; //能余2等于0为偶数
}
else
{
ji++;
}
}
System.out.println("偶数个数为:"+ou);
System.out.println("奇数个数为:"+ji);
}
}
4、 编写应用程序,从命令行输入两个小数参数,求它们的商。要求程序中捕获NumberFormatException异常和ArithmeticException异常。
···
public class T4 {
public static void Ha(String a,String b) throws NumberFormatException,ArithmeticException{
double k,h;
for(int i=0;i<a.length();i++)
{
for(int j=0;j<b.length();j++)
{
char c=a.charAt(i);
char d=b.charAt(j);
if(c==' '||d==' ')
{
throw new NumberFormatException("不能输为空格,数字格式化异常!");
}
}
}
k=Double.parseDouble(a);
h=Double.parseDouble(b);
if(h<=0) {
throw new ArithmeticException("算数异常出现!");
}
else
{
System.out.println("它的商为:"+(k/h));
}
}
public static void main(String[] args) {
try {
Ha("49","8 "); //标准规定一个浮点字面常量如果没有后缀的话,它的类型是double,float定义方法:需要加f后缀
}
catch(Exception e)
{
System.out.print("捕捉的异常信息为:"+e.getMessage());
}
}
}
5、 定义一个StringBuffer类对象,然后通过append()方法向对象里添加26个小写字母,要求每次只添加一次,共添加26次,并在每一次添加后面加上“哈哈”。
public class T5 {
public static void append() {
StringBuffer f=new StringBuffer();
Character a='a';
for(int i=0;i<26;i++) {
f.append(a+"哈哈"+'\n');
a=new Character((char)(a+1)); (new Character()可省略)
System.out.println(i);
}
System.out.print(f);
}
public static void main(String []args) {
append();
}
}
6、 利用Random类产生15个1~100之间(包括1和100)的随机整数。
public classT6 {
public static void main(String[] args){
int[] intArray = new int[15];
for(int i = 0;i < 15;i ++){
intArray[i] = (int)(Math.random()*99+1);
}
for(int i : intArray){
System.out.print(i+"\t");
}
}
}
7、 输入一个数字,然后分解质因数,例如:输入20,输出:20=2x2x5**
import java.util.Scanner;
public class T7 {
public static void main(String[] args) {
System.out.println("请输入一个要分解的正整数:");
Scanner n = new Scanner(System.in);
int a=n.nextInt();
System.out.print(a+"=");//输出n=
for(int i=2;i<=a;i++){ //遍历寻找除数
while(a%i==0&&a!=i){//能够被整除并且产生的除数不等于被除数,还能再进行运算
a/=i;
System.out.print(i+"*");
}
if(a==i){//若不加此判断语句则输出为20=2x2x,需要输出最后位数
System.out.print(a);
break;
}
}
}
}
8、 假设顺序列表ArrayList中存储的元素是整型数字1~5,遍历每个元素,将每个元素顺序输出。
import java.util.ArrayList;
public class T8 {
public static void main(String[] args) {
ArrayList a=new ArrayList();
for(int i=1;i<6;i++)
{
a.add(i);
}
for(int j=0;j<a.size();j++)
{
System.out.println(a.get(j));
}
}
}
9、 在一个列表中存储以下元素:apple,grape,banana,pear
(1) 返回集合中的最大的和最小的元素
(2) 将集合进行排序,并将排序后的结果打印在控制台上
import java.util.ArrayList;
import java.util.Collections;
public class T9 {
public static void main(String[] args) {
ArrayList<String> a=new ArrayList<String>();
a.add("apple");
a.add("banana");
a.add("pear");
a.add("grape");
Collections.sort(a);
System.out.println("最大元素:"+Collections.max(a) +'\n'+"最小元素:"+Collections.min(a));
System.out.println("排序为:");
for(String s:a) {
System.out.println(s);
}
}
}
10、从控制台输入若干个单词(输入回车结束)放入集合中,将这些单词排序后(忽略大小写)打印出来。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class T10 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
ArrayList<String> a=new ArrayList<String>();
System.out.print("请输入需要排序的单词数量:");
int num=s.nextInt();
System.out.println("请输入单词:");
for(int i=0;i<num;i++)
{
a.add(s.next().toUpperCase()); //在输入单词时就将其全部转换成大写(即忽略大小写)
}
//排序方法一:
Collections.sort(a);
//排序方法二:
for(int i=0;i<a.size();i++) {
for(int j=0;j<a.size()-1-i;j++) {
if(a.get(j).compareTo(a.get(j+1))>0) {
String temp=a.get(j);
a.set(j,a.get(j+1));
a.set(j+1, temp);
}
}
}
System.out.println("排序后的单词:");
for(int j=0;j<a.size();j++)
{
System.out.println(a.get(j));
}
}
}