习题资源来自B站:2020-java-入门到大神-慢慢来,别急
前篇文章:从零开始学JAVA-作业习题(二)
后篇文章:从零开始学JAVA-作业习题(四)
同期文章:从零开始学JAVA-笔记汇总(三)
习题相关章节索引(章节未重新排序,与笔记章节序号及名称一一对应)
- 1.1 类和对象
- 1.6 字符串
- 习题2:API使用练习
- 习题3:用户登录
- 习题4:遍历字符串
- 习题5:统计字符次数
- 习题6:拼接字符串
- 习题7:字符串反转
- 习题8:StringBuilder拼接字符串
- 习题9:StringBuilder字符串反转
- 1.7 集合基础
新文章,同一天的笔记继续~
1.1 类和对象
习题1:学生
需求:学生 |
首先定义一个学生类,然后定义一个学生测试类,在学生测试类中通过对象完成成员变量和成员方法的使用 |
package com.lilin_07;
/*
成员变量:
姓名
年龄
成员方法:
学习
做作业
*/
public class Student {
//定义成员变量
String name;
int age;
//定义成员方法
public void study(){
System.out.println("正在学习");
}
public void doHomework(){
System.out.println("正在做作业");
}
}
package com.lilin_07;
public class StudentTest {
public static void main(String[] args) {
//创建对象
Student std = new Student();
//调用成员变量
std.name="小明";
std.age=12;
System.out.println(std.name);
System.out.println(std.age);
//调用成员方法
std.study();
std.doHomework();
}
}
需要两个类相互配合。一个为普通类,一个为测试类。测试类需要有main方法来当作程序的入口。
休息
休息
休息
只有笔记,无习题
1.6 字符串
习题2:API使用练习
需求:API使用练习 |
按照帮助文档的使用步骤学习Scanner类的使用,并实现键盘录入一个字符串,最后输出在控制台 |
使用步骤:
- 点击【索引】输入Scanner查找Scanner类
- 查看类在哪个包下(java.util.Scanner)
- 查看类的描述信息
3.1 一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
- 查看构造方法
- 查看成员方法(nextLine()方法)
package com.lilin_09;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入字符串:");
//CTRL+ALT+V 自动补全左边的String line=
String st=sc.nextLine();
System.out.println("您输入的字符串为:");
System.out.println(st);
}
}
习题3:用户登录
需求:用户登录 |
已知用户名和密码,请用程序实现模拟用户登录。总共三次机会,登录之后,给出相应的提示 |
UserDemo
package com.lilin_10;
public class UserDemo {
private String userName;
private String passWord;
public String getPassWord() {
return passWord;
}
public String getUserName() {
return userName;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
LoginDemo
package com.lilin_10;
import java.util.Scanner;
public class LoginDemo {
public static void main(String[] args) {
//用户名
Scanner sc1 = new Scanner(System.in);
//密码
Scanner sc2 = new Scanner(System.in);
//用户类
UserDemo up = new UserDemo();
//设置账号密码
up.setUserName("li273y");
up.setPassWord("ll273y");
//获取账号密码
String userName=up.getUserName();
String passWord=up.getPassWord();
//进入输入循环,根据需求循环3次
for(int i = 1;i<4;i++) {
//在循环体内写键盘录入语句,用于循环接收账号密码
System.out.println("请输入用户名");
String un = sc1.nextLine();
System.out.println("请输入密码");
String pw = sc2.nextLine();
//如果账号密码正确,则输出相关信息并break退出循环
if (userName.equals(un) && passWord.equals(pw)) {
System.out.println("第"+i+"次尝试登录,成功");
break;
}
//如果账号密码错误,发出,并以循环次数为条件进行判断,第三次输入错误将有专门的输出语句提示强制退出
if(i<=2){
System.out.println("账号或密码第"+i+"次输入错误");
}else{
System.out.println("账号或密码输入错误"+i+"次,登录程序被强制退出");
}
}
}
}
我这里写了一个专门的用户类,用于生成用户对象(用户名、密码),如果按照需求写,直接在main方法中String 定义一下用户名密码即可,我这么写主要是想练习一下新学的东西~~
习题4:遍历字符串
需求:遍历字符串 |
键盘录入一个字符串,使用程序实现在控制台遍历该字符串 |
package com.lilin_10;
import java.util.Scanner;
public class CharAt {
//遍历字符串
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段字符串");
String s1 = sc.nextLine();
/*
遍历字符串,首先要能够获取到字符串中的每一个字符,
public char charAt(int index); 能够返回指定索引处的char值,字符串的索引也是从0开始
*/
for(int i=0;i
这里犯了一个低级错误,没有psvm,忘记把程序写入main方法里了。。。
习题5:统计字符次数
需求:统计字符次数 |
键盘录入一个字符串,统计该字符串中大写字符,小写字符,数字字符出现的次数(不考虑其余类型的字符) |
package com.lilin_11;
/*
统计字符次数
键盘录入一个字符串,统计该字符串中大写字符,小写字符,数字字符出现的次数(不考虑其余类型的字符)
*/
import java.util.Scanner;
public class StringTest001 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String ch = sc.nextLine();
int bg=0;
int sm=0;
int num=0;
for (int i=0;i='A'&&c<='Z'){ //字符使用单引号
bg+=1;
}else if (c>='a'&&c<='z'){
sm+=1;
}else if(c>='0'&&c<='9'){
num+=1;
}
}
System.out.println(bg+","+sm+","+num);
}
}
习题6:拼接字符串
需求:拼接字符串 |
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[] arr = {1,2,3};,执行方法后的输出结果为:[1,2,3] |
package com.lilin_11;
public class StringTest002 {
public static void main(String[] args) {
int[] arr = {1,2,3,123,5412,56,67};
String sb = sub(arr);
System.out.println(sb);
}
public static String sub(int[] arr){
String st ="";
for (int i=0;i
习题7:字符串反转
需求:字符串反转 |
定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果,例如,键盘录入abc,输出结果为cba |
package com.lilin_11;
import com.lilin_10.CharAt;
import java.util.Scanner;
public class StringTest003 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String s = sc.nextLine();
String s1 = fanZhuan(s);
System.out.println(s1);
}
public static String fanZhuan(String st){
String s ="";
for (int i=st.length()-1;i>=0;i--){
s=s+st.charAt(i);
}
return s;
}
}
这道题在方法fanZhuan中的for循环条件没写对,debug排查也发现根本没走for循环直接跳过去了,但是还是没发现原因,看了老师的代码才发现对变量 i 的判断符号写反了,淦!【;i>=0;】写成了【;i<0;】怪不得直接就不进入循环呢。
公司搬家
公司搬家
公司搬家
习题8:StringBuilder拼接字符串
需求:StringBuilder拼接字符串 |
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[] arr = {1,2,3};,执行方法后输出结果为[1,2,3] |
package com.lilin_12;
/*
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[] arr = {1,2,3};,执行方法后输出结果为[1,2,3]
*/
public class StringBuilderTest001 {
public static void main(String[] args) {
int[] arr = {1,2,3123,134,423,67,234};
//使用方法输出结果
String s = ziFuChuanPinJie(arr);//通过该方法为s赋值
System.out.println(s);
}
/*
定义方法,返回数组中的数据并按照执行的格式拼接成一个字符串返回。
两个名确:
方法参数:arr
返回类型:String
*/
public static String ziFuChuanPinJie(int[] arr){
//使用String的话既浪费时间又浪费空间,因此使用StringBuilder来优化
StringBuilder sb = new StringBuilder();
//System.out.print("["+arr[0]+",");
sb.append("["+arr[0]+",");
for(int i = 1;i
习题9:StringBuilder字符串反转
需求:StringBuilder字符串反转 |
定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果,例如,键盘录入abc,输出结果为cba |
package com.lilin_12;
import java.util.Scanner;
//定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果,例如,键盘录入abc,输出结果为cba
public class StringBuilderTest002 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一串字符");
String s = sc.nextLine();
//调用方法实现字符串反转
String s1 = fanZhuan(s);
System.out.println(s1);
}
/*
定义一个方法,实现字符串反转。
两个名确:
参数类型:String
返回值类型:String
*/
public static String fanZhuan(String str){
/*
StringBuilder sb = new StringBuilder(str);
sb.reverse();
return sb.toString();
*/
//可以用一行代码完成该功能
return new StringBuilder(str).reverse().toString();
//上面的new StringBuilder(str)没讲他赋给变量,也就是说他没有名字,因此创建了一个【匿名对象】
}
}
1.7 集合基础
我从事数据库相关行业,突然发现我的学习周期有点偏长。
决定从培训视频中,提取DBA需要了解的技术进行学习。
新博客地址:DBA需要了解的Java相关技术笔记
书签:视频P135
同期文章:从零开始学JAVA-笔记汇总(三)
前篇文章:从零开始学JAVA-作业习题(二)
后篇文章:从零开始学JAVA-作业习题(四)
习题资源来自B站:2020-java-入门到大神-慢慢来,别急