1.结婚
创建一个Person类,如下:
public class Person{
private String name;
private Character gender;
private Integer age;
private Boolean marry;
// 省略 getter / settter / 构造 / toString / hashCode / equals
}
有一个类CAB
,有一个canMarry
方法,接收两个Person
对象,返回boolean
值表示两个人能否结婚。
(1)Person类:
package swp.kaifamiao.codes.Java.d0822;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
public class Person {
private String name;
private Character gender;
private Integer age;
private Boolean marry;
public Person() {
}
public Person(String name, Character gender, Integer age, Boolean marry) {
this.name = name;
this.gender = gender;
this.age = age;
this.marry = marry;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return gender
*/
public Character getGender() {
return gender;
}
/**
* 设置
* @param gender
*/
public void setGender(Character gender) {
this.gender = gender;
}
/**
* 获取
* @return age
*/
public Integer getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(Integer age) {
this.age = age;
}
/**
* 获取
* @return marry
*/
public Boolean getMarry() {
return marry;
}
/**
* 设置
* @param marry
*/
public void setMarry(Boolean marry) {
this.marry = marry;
}
@Override
public String toString() {
return "姓名:" + name + ", 性别: " + gender + ", 年龄: " + age;
}
}
(2)CAB类:
package swp.kaifamiao.codes.Java.d0822;
import java.util.Scanner;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
public class CAB {
public static void start(){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个人的信息:");
System.out.print("姓名:");
String name1 = scanner.nextLine();
System.out.print("性别:");
char gender1 = scanner.nextLine().charAt(0);
System.out.print("年龄:");
int age1 = scanner.nextInt();
System.out.print("是否已婚(true/false):");
boolean marry1 = scanner.nextBoolean();
scanner.nextLine(); // 清除缓冲区的换行符
System.out.println("请输入第二个人的信息:");
System.out.print("姓名:");
String name2 = scanner.nextLine();
System.out.print("性别:");
char gender2 = scanner.nextLine().charAt(0);
System.out.print("年龄:");
int age2 = scanner.nextInt();
System.out.print("是否已婚(true/false):");
boolean marry2 = scanner.nextBoolean();
Person per1 = new Person(name1, gender1, age1, marry1);
Person per2 = new Person(name2, gender2, age2, marry2);
CAB cab = new CAB();
System.out.println(per1.getName() + " 和 " + per2.getName() + " " + cab.canMarry(per1, per2));
scanner.close();
}
/**
* 能否结婚的方法
* @param per1
* @param per2
* @return
*/
public String canMarry(Person per1,Person per2){
if (!per1.getGender().equals(per2.getGender()) && !per1.getMarry() && !per2.getMarry()){
if (per1.getAge() > 18 && per2.getAge() > 18){
//可以结婚
return "可以结婚";
}
}
//不能结婚
return "不能结婚";
}
}
(3)测试类:
package swp.kaifamiao.codes.Java.d0822;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
public class Test {
public static void main(String[] args) {
CAB.start();
}
}
运行效果:
2.统计个数
请编写程序,由键盘录入一个字符串,统计字符串中英文字母和数字分别有多少个。比如:Hello12345World中字母:10个,数字:5个。
package swp.kaifamiao.codes.Java.d0822;
import java.util.Scanner;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
public class Count {
/**
* 定义一个输入字符串的方法
* @return 输入的字符串
*/
public static String inputString() {
Scanner sca = new Scanner(System.in);
System.out.println("请输入字符串:");
//拿到控制台的输入
String str = sca.next();
return str;
}
/**
* 定义一个查询字母和数字的方法
*/
public void selectCount(){
//定义字母和数字的计数器,初始值为0
int engCount = 0;
int numCount = 0;
String str = inputString();
//定义一个char类型的数组,遍历字符串
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
//判断是否为字母
if (Character.isLetter(ch)){
engCount++;
} else if (Character.isDigit(ch)) {
numCount++;
}
}
System.out.println("字符串中字母的数量为:" + engCount);
System.out.println("字符串中数字的数量为:" + numCount);
}
/**
* 程序入口,主函数
* @param args
*/
public static void main(String[] args) {
// 创建Count类的实例
Count count = new Count();
// 调用selectCount方法执行计数
count.selectCount();
}
}
运行效果:
3.回文字符串
请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba”、"上海自来水来自海上"均为对称字符串。
(1) Palindromic判断方法类:
package swp.kaifamiao.codes.Java.d0822;
/*
* 回文字符串判断
*/
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
public class Palindromic {
/**
* 定义一个判断是否是回文字符串的方法
*/
public static boolean isPalindrome(String src){
/*
定义字符串最左以及最右的下标(索引)
*/
int left = 0;
int right = src.length()-1;
/*
* 让最左与最右做比较,若第一次两边一样,则让左边下标右移一位,右边下标左移一位
* 因为不知道次数,所以使用while循环,直到左边大于等于右边时才终止循环
*/
while (left < right){
if (src.charAt(left) != src.charAt(right)){
return false;
}
left++;
right--;
}
return true;
}
}
(2) PalindromicTest测试类:
package swp.kaifamiao.codes.Java.d0822;
import java.util.Scanner;
/**
* {class description}
*
* @author SWP
* @version 1.0.0
*/
public class PalindromicTest {
/**
* 程序入口,主方法
* @param args
*/
public static void main(String[] args) {
//控制台输入字符串
Scanner input = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String src = input.next();
//调用Palindromic.isPalindrome()方法,定义一个布尔类型的值去接收return的结果
boolean isPalindromic = Palindromic.isPalindrome(src);
if (isPalindromic){
System.out.println(src + "\t" + "是回文字符串!");
}else {
System.out.println(src + "\t" + "不是回文字符串!");
}
}
}