十五章作業
1.根據你的理解,簡要說明比較運算子(==)和equal()方法判斷兩個字串是否相等有什麼區別。
答案:equals能每個比較,==是比較標識地址
2.輸入五種水果的英文名稱(如葡萄grape、橘子orange、香蕉banana、蘋果apple、桃peach),編寫一個程式,輸出這些水果的名稱(按照在字典裡出現的先後順序輸出)。
答案:package lesson15;
import java.util.Arrays;
import java.util.Scanner;
public class No_1 {
public static void main(String[] args) {
String[] shuiguo=new String[5]; Scanner input=new Scanner(System.in); for (int i = 0; i < shuiguo.length; i++) { System.out.print("請輸入第"+(i+1)+"水果:"); shuiguo[i]=input.next(); System.out.println(); }Arrays.sort(shuiguo); System.out.println("這些水果在字典中出現的順序是:"); for (int j = 0; j < shuiguo.length; j++) { System.out.print(shuiguo[j]+"\t"); } }
}
3.假設中國人的姓都是單個字,請隨機輸入一個人的姓名,然後輸入一個人的姓名,然後輸出姓和名
答案:package lesson15;
public class No_2_1 {
public String xing(String xing){
return xing.substring(0,1);
}
public String ming(String ming){
return ming.substring(1);
}
}
package lesson15;
import java.util.Scanner;
public class No_2 {
public static void main(String[] args) {
No_2_1 b=new No_2_1();
Scanner input=new Scanner(
System.out.print(“請輸入您的姓名”);
String a=input.next();
System.out.println(“姓氏:”+b.xing(a));
System.out.println(“名:”+b.ming(a));
}
}
4.錄入使用者的18位身份證號碼,從中提取使用者的生日。
答案:package lesson15;
public class No_3_1 {
public String shengri(String shengri){
return shengri.substring(6,13);
}
}
package lesson15;
import java.util.Scanner;
public class No_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
No_3_1 c=new No_3_1();
Scanner input=new Scanner(System.in);
System.out.print("請輸入您的18位身份證號碼:");
String a=input.next();
int d=0;
while(true){if(a.length()!=18){
if(d>5){
System.out.println("傻逼,身份證都不會輸入");
}
d++;
System.out.print("輸入錯誤,請輸入18位身份證號碼:");
a=input.next();
}else{
System.out.println("您的生日為:"+c.shengri(a));
System.exit(0);
}
}
}
}
5.編寫一個字元瀏覽器,輸入字串及需要查詢的字元或字串,瀏覽器自動定位所有出現該字元或字串的位置。
答案:package lesson15;
public class No_4_1 {
public void cha(String g,String f){
int a=0;
int b=a;
int length=g.length();
System.out.println(f+“出現的位置是:”);
do{
a=g.indexOf(f, b);
if(a==-1){
System.out.println(“沒有”);
break;
}
System.out.println(a+1+"");
b=a+f.length();
}while(b<=length);
}
}
package lesson15;
import java.util.Scanner;
public class No_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
No_4_1 a=new No_4_1();
Scanner input=new Scanner(System.in);
System.out.print("請輸入一段字元");
String b=input.next();
System.out.print("請輸入您想查詢的字元");
String c=input.next();
a.cha(b, c);
}
}
6.對錄入的資訊進行有效性驗證。
錄入會員生日時,形式必須是“月/日”,如“09/12”。錄入的密碼位數必須為6~10位。允許使用者重複錄入,直到輸入正確為止
答案:package lesson15;
import java.sql.Date;
import java.util.Scanner;
public class No_5_1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
boolean a=true;
while(a){
System.out.println("請輸入會員生日:00/00");
String b=input.next();
if(b.indexOf("/")!=2){
System.out.println("輸入錯誤,格式為:00/00");
}else{
System.out.println(b);
a=false;
}
}a=true;
while(a){
System.out.print("請輸入6-10位密碼:");
String mi=input.next();
if(mi.length()<6||mi.length()>10){
System.out.println("密碼不符合要求");
}else{
System.out.println("密碼為:"+mi);
}
a=false;
}
}
}