1.键盘录入你的出生日期(String),计算来的这个世界有多少天了...
/*
分析:
1)录入出生日期
2)将String 日期文本----->Date :解析
3)获取当前出生年月日所在的那个系统时间毫秒值
4)public static long currentTimeMillis()//:计算当前系统时间毫秒值
5)差值
6)换算成天 /1000/60/60/24
*/
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入一个出生日期:") ;
String birthday =sc.nextLine() ;
//将String---解析为 Date日期格式
Date date = DateUtils.stringToDate(birthday, "yyyy-MM-dd");
//获取date所在的系统时间毫秒值
long oldTime = date.getTime();
//获取当前系统时间毫秒值
long nowTime = System.currentTimeMillis();
long time = nowTime - oldTime ;
//换算
long day =time /1000 /60 /60 /24 ;
System.out.println("您来到这个世界有"+day+"天了...");
}
}
2.键盘录入字符串,包含数字,大写字母,小写字母字符(不考虑特殊字符),统计出现的个数
import java.util.Scanner;
public class CharacterTest {
public static void main(String[] args) {
//定义统计变量
int bigCount = 0 ;
int smallCount = 0 ;
int numberCount = 0 ;
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入一个字符串: ") ;
String line = sc.nextLine() ;
//方式1:---字符数组 方式2:----自己for循环变量
for(int i = 0 ; i < line.length() ; i++){
char ch = line.charAt(i) ;
//使用Character静态功能判断
if(Character.isDigit(ch)){
numberCount ++ ;
}else if(Character.isLowerCase(ch)){
smallCount ++ ;
}else if(Character.isUpperCase(ch)){
bigCount ++ ;
}
}
System.out.println("数字字符共有"+numberCount+"个") ;
System.out.println("大写字母字符共有"+bigCount+"个") ;
System.out.println("小写字母字符共有"+smallCount+"个") ;
}
}
3.键盘录入任意年份,计算出2月份有多少天? (不考虑特殊年)
import java.util.Calendar;
import java.util.Scanner;
public class CalendarTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入任意的年份值: ") ;
int year = sc.nextInt() ;
//创建日历对象
Calendar c = Calendar.getInstance();
//设置当前的日历字段
c.set(year,2,1); //此时应该是3月1号
//设置Date字段的偏移量
c.add(Calendar.DATE,-1) ;
System.out.println("任意年份的2月份有:"+c.get(Calendar.DATE));
}
}
4.选择排序
class ArrayDemo {
public static void main(String[] args) {
//给定一个数组
int[] arr = {24, 68, 87, 57, 13};
selectSort(arr);
printArray(arr);
System.out.println("排序前:");
}
public static void selectSort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {//比较次数
for (int y = x + 1; y < arr.length; y++) {//遍历后面的元素
//判断
if (arr[y] < arr[x]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
public static void printArray(int[] arr) {
System.out.print("[");
for (int x = 0; x < arr.length; x++) {
if (x == arr.length - 1) {
System.out.println(arr[x] + "]");
} else {
System.out.print(arr[x] + ", ");
}
}
}
}
5.使用数组存储5个学生,并且输出学生信息(姓名,年龄)
//学生类
public class Student {
private String name ;
private int age ;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//测试类
public class studentTest {
public static void main(String[] args) {
//有对象数组存储学生,
// 数据类型[] 数组名称 = new 数据类型[长度] ;
Student[] students = new Student[5] ;
//创建5个学生
Student s1 = new Student("詹姆斯",35) ;
Student s2 = new Student("库里",31) ;
Student s3 = new Student("姚明",38) ;
Student s4 = new Student("乔丹",60) ;
Student s5 = new Student("科比",38) ;
//赋值
students[0] = s1 ;
students[1] = s2 ;
students[2] = s3 ;
students[3] = s4 ;
students[4] = s5 ;
//遍历数组
for(int x = 0 ; x < students.length ; x ++){
// System.out.println(students[x]) ; //直接输出对象名称
//使用特有功能getXXX()获取信息
Student s = students[x] ;
System.out.println(s.getName()+"---"+s.getAge());
}
}
}
6.使用Collection存储5个学生,并使用迭代器进行遍历 ,通过getXXX()获取学生的姓名和年龄...
//学生类
public class Student {
private String name ;
private int age ;
private String gender ;
public Student() {
}
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
测试类
public class CollectionTest {
public static void main(String[] args) {
//创建一个Collection集合
Collection c = new ArrayList() ;
//创建5个学生对象
Student s1 = new Student("亚索",30,"男") ;
Student s2 = new Student("盲僧",25,"男") ;
Student s3 = new Student("德邦",22,"男") ;
Student s4 = new Student("德玛西亚",35,"男") ;
Student s5 = new Student("咔沙",22,"女") ;
c.add(s1) ;
c.add(s2) ;
c.add(s3) ;
c.add(s4) ;
c.add(s5) ;
//获取迭代器
Iterator it = c.iterator();//本质就是:接口多态 Iterator it = new Itr() ;//内部类
while(it.hasNext()){
Student s = (Student) it.next();
System.out.println(s.getName()+"----"+s.getAge()+"----"+s.getGender());
}
}
}
7.使用List集合存储5个学生,将学生信息的进行遍历
//学生类
public class Student {
private String name ;
private int age ;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//测试类
public class ListTest {
public static void main(String[] args) {
//创建List
List list = new ArrayList<>() ;
//创建5个学生
Student s1 = new Student("迪丽热巴",27) ;
Student s2 = new Student("宋祖儿",25) ;
Student s3 = new Student("欧阳娜娜",25) ;
Student s4 = new Student("张子枫",22) ;
Student s5 = new Student("井川里予",20) ;
//添加
list.add(s1) ;
list.add(s2) ;
list.add(s3) ;
list.add(s4) ;
list.add(s5) ;
//遍历
//方式3:
for (int i = 0; i
8.使用List存储多个字符串,有重复元素,如何去重!
public class ListTest2 {
public static void main(String[] args) {
//创建List集合对象
List list = new ArrayList<>() ;
list.add("hello") ;
list.add("world") ;
list.add("javaee") ;
list.add("hello") ;
list.add("world") ;
list.add("world") ;
list.add("hello") ;
list.add("javaee") ;
list.add("android") ;
list.add("android") ;
list.add("php") ;
list.add("php") ;
//创建一个新的集合
List newList = new ArrayList<>() ;
//遍历旧集合获取每一个元素:增强for
for(String s:list){
//在新集合中判断是否包含这个元素,如果不包含,才给新集合中添加
if(!newList.contains(s)){
newList.add(s) ;
}
}
//遍历新集合
for(String s:newList){
System.out.println(s);
}
}
}
9.创建Collection,加入泛型操作,存储几个学生,进行迭代器遍历
//学生类
public class Student {
private String name ;
private int age ;
private String gender ;
public Student() {
}
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
//测试类
public class GenericTest {
public static void main(String[] args) {
//创建Collection集合
Collection c = new ArrayList<>() ;
//创建4个学生:古代四大美女
Student s1 = new Student("貂蝉",32,"女") ;
Student s2 = new Student("王昭君",30,"女") ;
Student s3 = new Student("西施",25,"男") ;
Student s4 = new Student("杨玉环",28,"女") ;
c.add(s1) ;
c.add(s2) ;
c.add(s3) ;
c.add(s4) ;
//获取迭代器
Iterator iterator = c.iterator();
while(iterator.hasNext()){ //不明确循环次数
Student s = iterator.next() ;
System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getGender()) ;
}
}
}
10.使用ArrayList集合模拟用户登录和注册操作!
//针对用户的数据访问接口层
public interface UserDao {
boolean isLogin(String username,String password) ;
void register(User user) ;
}
//用户实体类
public class User {
private String username ; //用户名
private String password ; //用户密码
public User() {
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
//针对用户操作的数据访问接口实现
public class UserDaoImpl implements UserDao {
//要被登录和注册共享
private static ArrayList list = new ArrayList<>() ;
@Override
public boolean isLogin(String username, String password) {
//在登录的时候,还需要使用这个集合,需要将ArrayList遍历出来,获取用户信息----登录和注册应该是同一个集合
//假设思想
boolean flag = false ;//不成立
//需要将ArrayList遍历出来,获取用户信息
//针对List集合非空判断
if(list!=null){
System.out.println(list);
for(User user :list){
//判断
if(user.getUsername().equals(username) && user.getPassword().equals(password)){
//修改标记
flag = true ;
}
}
}
return flag;
}
/**
* 用户的注册功能
* @param user 用户的实体对象
*/
@Override
public void register(User user) {
//将用户User存储在哪里? 存储集合中----ArrayList
//创建一个List集合
//ArrayList list = new ArrayList<>() ;
list.add(user) ;
}
}
//游戏类
public class GuessNumberGame {
private GuessNumberGame(){}
public static void startGame(){
//产生一个随机数:1-100之间的随机数
int num = (int) (Math.random()*100+1);
int count = 0 ;
while(true){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
count ++ ;
//提示并录入
System.out.println("请输入要猜的数据: ") ;
int guessNum = sc.nextInt() ;
//判断
if(guessNum > num){
System.out.println("要猜的数字大了...");
}else if(guessNum
11.有3个Java基础班,每一个班级都看成一个ArrayList, 这个三个班级组成了一个大的集合ArrayList> 获取出每一个班级的学生的姓名和年龄;
//学生类
public class Student {
private String name ;
private int age ;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//测试类
public class ArrayListTest {
public static void main(String[] args) {
//创建出大的集合
ArrayList> bigArray = new ArrayList<>() ;
//第一个Java基础班
ArrayList firArray = new ArrayList<>() ;
//创建3个学生
Student s1 = new Student("唐僧",50) ;
Student s2 = new Student("孙悟空",44) ;
Student s3 = new Student("猪八戒",40) ;
//添加数据
firArray.add(s1) ;
firArray.add(s2) ;
firArray.add(s3) ;
//添加到大集合中
bigArray.add(firArray) ;
//第二个Java基础班
ArrayList secArray = new ArrayList<>() ;
//三个学生
Student s4 = new Student("宋江",40) ;
Student s5 = new Student("武松",35) ;
Student s6 = new Student("鲁智深",32) ;
secArray.add(s4) ;
secArray.add(s5) ;
secArray.add(s6) ;
bigArray.add(secArray) ;
//第三个Java基础班
ArrayList thirdArray = new ArrayList<>() ;
Student s7 = new Student("曹操",45) ;
Student s8 = new Student("刘备",36) ;
Student s9 = new Student("周瑜",33) ;
thirdArray.add(s7) ;
thirdArray.add(s8) ;
thirdArray.add(s9) ;
bigArray.add(thirdArray) ;
//遍历 ArrayList>
for(ArrayList array :bigArray){
for(Student s :array ){
System.out.println(s.getName()+"\t"+s.getAge());
}
}
}
}
12.TreeSet,键盘录入5个学生的姓名,语文成绩,英语/数学,总分从高到低排序(自然排序)
//实现自然排序的接口Compareable
public class Student implements Comparable{
//姓名
private String name ;
//语文成绩
private int chinese ;
//数学成绩
private int math ;
//英文成绩
private int english ;
public Student() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getChinese() {
return chinese;
}
public void setChinese(int chinese) {
this.chinese = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
//计算总分
public int getSum(){
return chinese + math + english ;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", chinese=" + chinese +
", math=" + math +
", english=" + english +
'}';
}
//要进行比较
@Override
public int compareTo(Student s) {
//排序的主要条件:
//总分从高到低进行排序
int num = s.getSum() - this.getSum() ;
//分析次要条件:
//总分相同,按照语文成绩:从低到高
int num2 = (num==0)?(this.chinese-s.chinese):num ;
//总分相同,语文相同,按照数学成绩:从低到高
int num3 = (num2==0)?(this.math-s.math):num2;
//总分相同,语文相同,按照英语排
int num4 = (num3 ==0)?(this.english-s.english):num3 ;
//如果都相同,不一定是同一个人,按照学生的姓名进行比较(字典顺序比较)
int num5 = (num4==0)?(this.name.compareTo(s.name)):num4 ;
return num5;
}
}
//测试类
import java.util.Scanner;
public class TreeSetTest {
public static void main(String[] args) {
//创建TreeSet集合:无参构造方法:自然排序
TreeSet ts = new TreeSet<>() ;
System.out.println("录入学生信息开始: ");
//录入5个学生
for(int x = 1 ; x <=5 ; x ++){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请你输入第"+x+"个学生的姓名: ") ;
String name = sc.nextLine() ;
System.out.println("请你输入第"+x+"个学生的语文成绩: ") ;
String chineseStr = sc.nextLine() ;
System.out.println("请你输入第"+x+"个学生的数学成绩: ") ;
String mathStr = sc.nextLine() ;
System.out.println("请你输入第"+x+"个学生的英语成绩: ") ;
String englishStr = sc.nextLine() ;
//创建学生对象:封装学生数据
Student s = new Student() ;
s.setName(name) ;
s.setChinese(Integer.parseInt(chineseStr)) ;
s.setMath(Integer.parseInt(mathStr)) ;
s.setEnglish(Integer.parseInt(englishStr)) ;
//将学生添加集合中
ts.add(s) ;
}
System.out.println("录入学生信息完毕: ") ;
System.out.println("学生的总分从高到低排序如下: ") ;
System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩");
//遍历集合
for(Student s:ts){
System.out.println(s.getName()+"\t"+s.getChinese()+"\t"+s.getMath()+"\t"+s.getEnglish());
}
}
}
13.使用集合模拟斗地主的洗牌和发牌,发到每个人手上牌有序
public class Test {
public static void main(String[] args) {
HashMap hm = new HashMap<>();
ArrayList array = new ArrayList<>();
String[] colors = {"♥", "♠", "♣", "♦"} ;
String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"} ;
int index = 0 ;
for (String number : numbers) {
for(String color : colors){
String poker = color.concat(number);
hm.put(index,poker);
array.add(index);
index++;
}
}
hm.put(index,"小王");
array.add(index) ;
index++ ;
hm.put(index,"大王");
array.add(index);
Collections.shuffle(array);
TreeSet liuBei = new TreeSet<>() ;
TreeSet guanYu = new TreeSet<>() ;
TreeSet zhangFei = new TreeSet<>() ;
TreeSet diPai = new TreeSet<>() ;
for (int x= 0; x=array.size()-3){
diPai.add(array.get(x)) ;
}else if(x % 3 == 0 ){
liuBei.add(array.get(x)) ;
}else if(x % 3 == 1){
guanYu.add(array.get(x)) ;
}else if(x % 3 == 2){
zhangFei.add(array.get(x)) ;
}
}
lookPoker("刘备",liuBei,hm);
lookPoker("关羽",guanYu,hm);
lookPoker("张飞",zhangFei,hm);
lookPoker("底牌", diPai, hm);
}
public static void lookPoker(String name, TreeSet ts,HashMap hm) {
System.out.print(name + "的牌是:");
for (Integer key : ts) {
String value = hm.get(key);
System.out.print(value + " ");
}
System.out.println();
}
}
14.键盘录入学生的成绩(1-100分),判断学生的成绩(90-100优秀 80-90良好 70-80较好
60-70及格 60以下不及格)
import java.util.Scanner ;
class IfDemo5{
public static void main(String[] args){
//创建键盘录入数据对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入学生成绩:") ;
int socre = sc.nextInt() ;
if(socre>100 || socre<0){
System.out.println("您输入的数据不合法...") ;
}else if(socre>=90 && socre <=100){
System.out.println("该学生成绩优秀...") ;
}else if(socre >=80 && socre< 90){
System.out.println("该学生成绩良好...") ;
}else if(socre>=70 && socre<80){
System.out.println("该学生成绩较好...") ;
}else if(socre>=60 && socre<70){
System.out.println("该学生成绩及格...") ;
}else{
System.out.println("不及格") ;
}
}
}
15.键盘录入一个数据,判断该月份的季节 (if语句)( 3,4,5月---->春季 6,7,8月---->夏季 9,10,11月--->秋季 12,1,2---->冬季)
import java.util.Scanner ;
class Test{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入
System.out.println("请您录入一个月份:") ;
int month = sc.nextInt() ;
//判断
if(month<=0 || month > 12){
System.out.println("地球不存在该月份!!") ;
}else if(month >= 3 && month <=5){
System.out.println("春季") ;
}else if(month>=6 && month<=8){
System.out.println("夏季") ;
}else if(month >= 9&& month<=11){
System.out.println("秋季") ;
}else{
System.out.println("冬季") ;
}
}
}
16.李雷想买一个价值7988元的新手机,她的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新的优惠,把她的旧手机交给店家,新手机就能够打8折优惠。为了更省钱,李雷要不要以旧换新?请在控制台输出。
class Test{
public static void main(String[] args){
//定义变量
//手机在二手市场能卖1500元,
double money = 7988 - 1500 ;
//以旧换新的价格
double money2 = 7988 * 0.8 ;
//判断money大于money2
if(money > money2){
System.out.println("以旧换新时的花费更省钱") ;
}else{
System.out.println("血亏...") ;
}
}
}
17.某银行推出了整存整取定期储蓄业务,其存期分为一年、两年、三年、五年,到期凭存单支取本息。存款年利率表如下:
存期 年利率(%)一年 2.25 两年 2.7 三年 3.25 五年 3.6
请存入一定金额(1000起存),存一定年限(四选一),计算到期后得到的本息总额。
//导包
import java.util.Scanner ;
class Test{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请输入存款本金:") ;
int money = sc.nextInt() ;
System.out.println("请输入存款年限:") ;
int year = sc.nextInt() ;
//定义最终本息和
double totalMoney = 0 ;
//根据不同的年限来进行本息和计算
if(year==1){
totalMoney = money + money * 2.25 /100 * 1 ;
}else if(year == 2){
totalMoney = money + money * 2.7 /100 * 2 ;
}else if(year == 3){
totalMoney = money + money * 3.25 /100 * 3 ;
}else if(year == 5){
totalMoney = money + money * 3.6 /100 * 5 ;
}else{
System.out.println("您输入的年限有误!") ;
}
System.out.println(year+"年后的本息和是:"+totalMoney) ;
}
}
18.键盘录入三个数据,获取三个数据中的最大值,分别使用三元运算符/if格式嵌套
//导包
import java.util.Scanner ;
class Test1{
public static void main(String[] args){
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入第一个数据:") ;
int a = sc.nextInt() ;
System.out.println("请您输入第二个数据:") ;
int b = sc.nextInt() ;
System.out.println("请您输入第三个数据:") ;
int c = sc.nextInt() ;
//三元运算符
//两种方式
//方式1:分步实现
int temp = (a>b)? a: b ;
int max = (temp >c)?temp:c ;
System.out.println("最大值是:"+max) ;
System.out.println("-----------------------------") ;
int max2 = (a>b)?((a>c)?a:c):((b>c)?b:c) ;
System.out.println("最大值是:"+max2) ;
System.out.println("-----------------------------") ;
//定义变量
int max3 ;
//if格式2嵌套
if(a>b){
//继续判断
if(a>c){
max3 = a ;
}else{
max3 = c ;
}
}else{
//上面不成立继续判断b和c
if(b>c){
max3 = b ;
}else{
max3 = c ;
}
}
System.out.println("最大值是:"+max3) ;
}
}
19.统计所有的 "水仙花数"有多个?
/*分析步骤:
1)定义统计变量 count
2)水仙花:明确范围:100-999
3)确定每各位的数据本身ge,shi,bai
4)满足的条件:ge*ge*ge+shi*shi*shi+bai*bai*bai==x, 这个时候统计变量++
5)输出count即可
*/
class ForTest{
public static void main(String[] args){
//1)定义统计变量 count
int count = 0 ;
//2)水仙花:明确范围:100-999
for(int x = 100 ; x <= 999; x ++){
//确定每各位的数据本身ge,shi,bai
int ge = x % 10 ;
int shi = x /10 % 10 ;
int bai = x /10/10 % 10 ;
//确定值满足的条件
if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==x){
//统计变量++
count ++ ;
System.out.println("第"+count+"次的数据是:"+x) ;
}
}
System.out.println("水仙花数共有"+count+"个") ;
}
}
20. 1)求1-100之间的和 2)求1-100之间的偶数和 3)求5的阶乘: n!= n * (n-1)!
class ForTest{
public static void main(String[] args){
//定义一个最终结果变量
int sum = 0 ;
for(int x = 1 ; x <= 100 ; x ++){
sum += x ;
}
System.out.println("1-100之间的和是:"+sum) ;
System.out.println("--------------------------------") ;
//求1-100之间的偶数和
int sum2 = 0 ;
for(int x = 1 ; x <= 100 ; x++){
//判断条件
if(x % 2 == 0){
sum2 += x ;
}
}
System.out.println("1-100之间的偶数和是:"+sum2) ;
System.out.println("--------------------------------") ;
//求5的阶乘:求阶乘思想和求和思想一致
//5*4*3*2*1
//5!=5 * 4! ;
//4! = 4 * 3!;
//3!= 3 * 2!;
//2!=2 * 1! (1!永远是1)
//定义一个最终结果变量
int jc = 1 ;
for(int x = 2 ; x <=5 ; x ++){//x=2,x=3
//计算
jc*= x ;
//jc * x = jc ;
// 1 * 2 = 2;
// 2 * 3 = 6
}
System.out.println("5的阶乘是:"+jc) ;
}
}
21.键盘录入数据,猜数字小游戏(1-100之间的随机数)
//导包
import java.util.Scanner ;
class WhileTest2{
public static void main(String[] args){
//要产生一个1-100之间的随机数
int num = (int)(Math.random()*100+1) ;
//死循环
while(true){
//需要不断的录入数据,
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
System.out.println("请输入一个是数字(1-100):") ;
//键盘录入一个数据:guessNumber
int guessNumber = sc.nextInt() ;
//判断
if(guessNumber>num){
//大了
System.out.println("您要猜的数字大了...") ;
}else if(guessNumber
22.我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
class WhileTest{
public static void main(String[] args){
//定义一个统计变量
int count = 0 ;
//定义初始化厚度:一张足够大的纸张,厚度为:0.01m。 乘以100
int start = 1 ;
//定义最终厚度:珠穆朗玛峰:8848m 乘以100
int end = 884800 ;
//保证厚度不低于珠穆朗玛峰的高度,一直折叠,当等于最终厚度
while(start<=end){
//统计变量++
count ++ ;
//起始厚度变化,是之前的2倍
start *=2 ;
System.out.println("第"+count+"次的厚度是:"+start) ;
}
System.out.println("总共需要折叠"+count+"次") ;
}
}
23.九九乘法表
class ForDemo{
public static void main(String[] args){
//99乘法表
//为了表示有效数据:从1开始
for(int x = 1 ; x <= 9 ; x++){//控制行数
//内层循环:列数在变化
for(int y = 1; y <=x ; y++){
System.out.print( x+"*"+y+"="+(y*x)+"\t") ;
}
System.out.println() ;
}
}
}
24.使用for循环完成(for循环--)请在控制台输出满足如下条件的五位数,个位=万位,十位=千位,个位+十位+千位+万位=百位
class Test{
public static void main(String[] args){
//五位数 明确范围:10000 99999 变量x
for(int x = 10000; x <= 99999 ; x++){
//获取每各位的数据本身质
int ge = x % 10 ;
int shi = x /10 % 10 ;
int bai = x /10/10 %10;
int qian= x / 10/10/10 % 10 ;
int wan = x/10/10/10/10 % 10 ;
//满足条件
if((ge==wan) && (shi==qian)&&(ge+shi+qian+wan==bai)){
//输出x
System.out.println(x) ;
}
}
}
}
25.“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3 文钱可以买1只公鸡,2 文钱可以买一只母鸡,1 文钱可以买3 只小鸡。用100 文钱买100 只鸡,那么各有公鸡、母鸡、小鸡多少只?
class ChickenNumber{
public static void main(String[] args){
//定义三个变量:x,y,z分别代表公鸡,母鸡,小鸡
//
//穷举公鸡数量
for(int x = 0 ; x <= 33;x++){
//获取到每一个公鸡数量
//穷举出母鸡的数量
for(int y = 0 ; y <= 50 ; y ++){
//获取到每一个母鸡数量
//定义小鸡的数量
int z = 100-x-y ;
//满足条件:
//100文钱买有100只鸡(包含公鸡,母鸡,小鸡)
//3 文钱可以买1只公鸡,
//2 文钱可以买一只母鸡,
//1 文钱可以买3 只小鸡,小鸡要能够3整除
if((3*x+2*y+z/3==100) && (z%3==0)){
System.out.println("公鸡有:"+x+"只"+",母鸡有:"+y+"只"+",小鸡有"+z+"只") ;
}
}
}
}
}
26.冒泡排序
class Test{
public static void main(String args){
int[] arr = {3,6,5,8,9,2,7,1};
maoPao(arr) ;
print(arr) ;
}
public static void maoPao(int[] arr){
for(int x = 0 ; x < arr.length-1 ; x++){
for(int y = 0 ; y < arr.length-1-x ; y++){
if(arr[y] >arr[y+1]){
int temp = arr[y] ;
arr[y] = arr[y+1] ;
arr[y+1] = temp ;
}
}
}
}
public static void print(int[] arr){
System.out.println("[") ;
for(int x = 0 ; x < arr.length ; x++){
if(x == arr.length-1){
System.out.println(arr[x] + "]");
}else{
System.out.println(arr[x] + ",");
}
}
}
}
27.设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法。设计一个灯泡类(Buble),灯泡类有发亮的方法(shine),其中有红灯泡类(RedBuble)和绿灯泡(GreenBuble)他们都继承灯泡类(Buble)一个发亮的方法。 设计完成后进行测试
public class Lamp {
Buble buble ;//灯泡的属性 (灯泡事物)
//设计的一个开灯的方法on
public void on(Buble buble){ //形式参数是一个引用类型:灯泡类
// 实际参数--- Buble buble = new RedBuble() ; /new GreenBubble();
buble.shine() ;
}
}
public class Buble {
//灯泡类有发亮的方法(shine)
public void shine(){
System.out.println("灯泡可以发亮了...");
}
}
//红灯泡
public class RedBuble extends Buble {
@Override
public void shine() {
System.out.println("灯泡可以发红光...");
}
}
//绿灯泡
public class GreenBuble extends Buble {
@Override
public void shine() {
System.out.println("灯泡可以发绿光了...");
}
}
//测试类
public class DuoTaiTest {
public static void main(String[] args) {
//开灯---->创建台灯类对象
Lamp lamp = new Lamp() ;
//多态的方式:父类引用执行子类对象
Buble buble = new RedBuble() ;
lamp.on(buble);
System.out.println("-----------------------------");
//重新创建一个灯泡类
Buble buble2 = new GreenBuble() ;//绿灯泡
lamp.on(buble2);
}
}
28.在现实生活中,我们经常通过电脑的 USB 接口来使用一些设备, * 例如 mp3 、移动硬盘、优盘等。现在要求使用面向接口编程去模拟实现这个例子。 * 实现步骤 * (1)创建 USB 接口,接口中只定义一个 work()方法。 * (2)创建 MP3 类并实现 USB 接口。 * (3)创建优盘类(U_Disk)并实现 USB 接口。 * (4)创建电脑类(Computer)并定义一个使用接口的方法 useMobile(USB u)。 * (5)测试类中分别创建对应的对象进行测试,MP3对象,优盘类对象,电脑对象)
//USB接口
public interface USB {
void work() ;//工作
}
//MP3类
public class MP3 implements USB{
@Override
public void work() {
System.out.println("可以听音乐了...");
}
}
//U盘
public class U_Disk implements USB {
@Override
public void work() {
System.out.println("实现数据的传输");
}
}
//电脑类
public class Computer {
//成员方法
public void userMobile(USB u){
u.work() ;
}
}
//测试类
public class Test {
public static void main(String[] args) {
//有一个电脑
Computer computer = new Computer() ;
//使用移动设备
//接口多态
USB usb = new MP3() ;
computer.userMobile(usb);
USB usb2 = new U_Disk() ;//u盘
computer.userMobile(usb2) ;
System.out.println("-----------------------------------") ;
//匿名对象
computer.userMobile(new MP3()) ;
computer.userMobile(new U_Disk()) ;
}
}
29.定义榨汁机JuiceMachine 有榨汁方法makeJuice,传入相应的水果。 * 如果传入的是Apple 输出 "流出苹果汁" * 传入的是Orange 输出 "流出橙汁" * 传入的是Banana 输出 "流出香蕉酱"
//工具类
public class JuiceMachine {
//构造方法私有化
private JuiceMachine(){}
public static void makeJuice(Fruit fruit){
fruit.juice() ;
}
}
//public abstract class Fruit {
//声明一个方法:让子类具体实现
public abstract void juice() ;
}
//苹果类
public class Apple extends Fruit {
@Override
public void juice() {
System.out.println("流出苹果汁");
}
}
//香蕉类
public class Banana extends Fruit {
@Override
public void juice() {
System.out.println("流出香蕉酱...");
}
}
//橙子类
public class Orange extends Fruit {
@Override
public void juice() {
System.out.println("流出橙汁");
}
}
//测试类
public class Test3 {
public static void main(String[] args) {
JuiceMachine.makeJuice(new Apple()) ;
JuiceMachine.makeJuice(new Banana()) ;
JuiceMachine.makeJuice(new Orange()) ;
}
}
30.教练和运动员(自己分析属性以及行为方法) 1. 乒乓球运动员和篮球运动员。2. 乒乓球教练和篮球教练。3. 为了出国交流,跟乒乓球相关的人员都需要学习英语。4.请用所学知识: 分析,这个案例中有哪些抽象类,哪些接口,哪些具体类(自定义属性以及一些成员方法,进行测试!)
//接口
public interface StudyEnglish {
void speakEnglish() ;
}
//抽象人类
public abstract class Person {
//姓名,年龄,性别
private String name ;
private int age ;
private String gender ;
public Person() {
}
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
//人的吃东西不同
public abstract void eat() ;
}
//教练类
public abstract class Coach extends Person {
public Coach() {
}
public Coach(String name, int age, String gender) {
super(name, age, gender);
}
//教练教授的东西不同
public abstract void teach() ;
@Override
public void eat() {
System.out.println("教练吃普通的工作餐");
}
}
//乒乓球教练
public class PingPangCoach extends Coach implements StudyEnglish {
public PingPangCoach() {
}
public PingPangCoach(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void teach() {
System.out.println("乒乓球教练教授如何发球和杀球...");
}
@Override
public void speakEnglish() {
System.out.println("乒乓球教练会使用英语交流...");
}
}
//篮球教练
public class BasketCoach extends Coach {
public BasketCoach() {
}
public BasketCoach(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void teach() {
System.out.println("篮球教练教授如何运球和投篮...");
}
}
//运动员类
public abstract class Player extends Person {
public Player() {
}
public Player(String name, int age, String gender) {
super(name, age, gender);
}
//运动员学习的东西不同的
public abstract void study();
@Override
public void eat() {
System.out.println("运动员吃营养餐...");
}
}
//乒乓球运动员
public class PingPangPlayer extends Player implements StudyEnglish {
public PingPangPlayer() {
}
public PingPangPlayer(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void study() {
System.out.println("乒乓球运动员学习如何接球和发球");
}
@Override
public void speakEnglish() {
System.out.println("乒乓球运动员会使用英语交流...");
}
}
//篮球运动员
public class BasketPlayer extends Player {
public BasketPlayer() {
}
public BasketPlayer(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void study() {
System.out.println("篮球运动员学习如何投篮和运球...");
}
}
//测试类
public class Test5 {
public static void main(String[] args) {
//抽象类多态----+接口多态
Person p = new PingPangPlayer() ;
p.setName("张继科") ;
p.setAge(24) ;
p.setGender("男") ;
System.out.println(p.getName()+"---"+p.getAge()+"---"+p.getGender()) ;
p.eat() ;
PingPangPlayer pingPangPlayer = (PingPangPlayer) p;
pingPangPlayer.study() ;
StudyEnglish se = new PingPangPlayer() ;
se.speakEnglish() ;
}
}
31.定义一个动物类,里面有一个方法voice(), * 定义一个类Cat,实现voice方法 * 然后增加一种新的动物类型:Pig(猪),实现voice()方法。 * 定义一个Dog类,实现voice方法 * 定义一个Store(宠物店)类的getInstance方法: * 如果传入的参数是字符串dog,则返回一个Dog对象; * 如果传入pig,则返回一个Pig对象;否则,返回一个Cat对象。
//动物类
public abstract class Animal {
public abstract void voice() ;
}
//猫类
public class Cat extends Animal {
@Override
public void voice() {
System.out.println("猫发出喵喵的叫声...");
}
}
//狗类
public class Dog extends Animal{
@Override
public void voice() {
System.out.println("狗发出汪汪的叫声...");
}
}
//猪类
public class Pig extends Animal {
@Override
public void voice() {
System.out.println("猪发出哼哼的叫声...");
}
}
//宠物店
public class Store {
private Store(){}
public static Animal getInstance(String type){ /
//判断
if(type.equals("dog")){
return new Dog() ;
}else if(type.equals("pig")){
//返回猪类对象
return new Pig() ;
}else if(type.equals("cat")){
return new Cat() ;
}else{
System.out.println("当前宠物店没有这个动物...");
}
return null ;
}
}
//测试类
public class Test {
public static void main(String[] args) {
//宠物店,里面有静态功能
Animal a = Store.getInstance("dog"); //相当于:Animal a = new Dog() ;
a.voice() ;
a = Store.getInstance("pig") ;
a.voice() ;
a = Store.getInstance("monkey") ;
//非空判断
if(a!=null){
a.voice() ;
}
int m = 20 ;
int n = 10 ;
System.out.println(m==n);
Cat c = new Cat();
Cat c2 = new Cat() ;
System.out.println(c==c2) ; //引用类型:==比较是地址值是否相同
Cat c3 = c ;
System.out.println(c==c3);
}
}
32.键盘录入一个字符串数据:举例: 录入 "Helloworldjavaee" 输出结果:"hELLOWORLDJAVAEE"
public class Test {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请录入字符串数据:");
String line = sc.nextLine() ;
//截取第一个字符出来
String s1 = line.substring(0, 1);
//将s1字符串--->转换小写
String s2 = s1.toLowerCase();
//截取后面的子字符串出来
String s3 = line.substring(1);//默认截取到末尾
//将s3转换成大写
String s4 = s3.toUpperCase();
//将s2和s4拼接
String result = s2.concat(s4) ;
System.out.println("result:"+result);
System.out.println("----------------------------------------------------");
//链式编程
String result2 = line.substring(0, 1).toLowerCase().
concat(line.substring(1).toUpperCase());
System.out.println("result2:"+result2) ;
}
}
33.键盘录入用户名和密码和已知的用户名和密码比较,模拟用户登录,给三次机会 ,如果信息一致,则提示“登录成功”,否则,提示“您还剩 x 次机会”,如果达到三次了,提示“您的账号被锁定,请联系管理员”
public class Test {
public static void main(String[] args) {
//已知用户名和密码:username 和password都是"admin"
String username = "admin" ;
String password = "admin" ;
//模拟用户登录,给三次机会:明确循环次数
for(int x = 0 ; x < 3 ; x ++){
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入用户名:") ;
String name = sc.nextLine() ;
System.out.println("请您输入密码:") ;
String pwd = sc.nextLine() ;
//判断
if(username.equals(name) && password.equals(pwd)){
//一致
System.out.println("恭喜您,登录成功.可以开始玩游戏了");
//调用玩游戏的类
System.out.println("还玩吗?y/n");
break ;
}else{
//换一种提示
if((2-x)==0){
System.out.println("您的账号被锁定,请联系管理员");
}else{
//没有用完
System.out.println("对不起,不一致,您还剩"+(2-x)+"次机会" );
}
}
}
}
}