Java基础入门 练习题

该练习题主要对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));
}	
} 
}
  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值