Java基礎程式設計題(API階段測試)(答案)
阿新 • • 發佈:2019-01-05
第一題(程式設計題: 15分 )(答案)
import java.util.Scanner;
public class Test1 {
/**
* 模擬登入,給三次機會,並提示還有幾次機會 1.假設使用者名稱和密碼均為admin,如果輸入正確,控制檯輸出:歡迎admin登入
* 2.如果輸入錯誤,控制檯輸出:錄入錯誤,您還有2次機會(最多有3次機會)
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System .out.println("請輸入:");
for (int i = 1; i <= 3; i++) {
String userName = sc.nextLine();
String passWord = sc.nextLine();
if ("admin".equals(userName) && "admin".equals(passWord)) {
// 如果錄入正確的話, 給予提示並且退出迴圈
System.out.println ("歡迎admin登入");
break;
} else {
if (i == 3) {
// 如果滿足條件說明是最後一次機會, 特殊列印
System.out.println("您的錄入機會已經使用完畢,請明日再來.");
} else {
System.out.println("錄入錯誤,您還有" + (3 - i) + "次機會");
}
}
}
}
}
第二題(程式設計題: 15分)
import java.util.Scanner;
public class Test2 {
/**
* 鍵盤錄入一個字串,統計該字串中大寫字母字元,小寫字母字元,數字字元出現的次數,其他字元出現的次數。
例如鍵盤錄入:ABCDEabcd123456[email protected]#$%^
輸出:ABCDEabcd123456[email protected]#$%^中大寫字母有:5個,小寫字母有:4個,數字字元:6個,其他字元:6個
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入:");
// 定義變數, 接受鍵盤錄入的字串
String line = sc.nextLine();
// 定義4個變數用來統計每種字元出現的次數
int big = 0;
int small = 0;
int num = 0;
int other = 0;
// 1. 將鍵盤錄入的字串轉成字元陣列
char[] arr = line.toCharArray();
// 2. 遍歷字元陣列, 拿到每一個字元
for (int i = 0; i < arr.length; i++) {
char c = arr[i];
// 3. 讓每一個字元都引數範圍性的判斷
if(c >= 'A' && c <= 'Z'){
big++;
}else if(c >= 'a' && c <= 'z'){
small++;
}else if(c >= '0' && c <= '9'){
num++;
}else {
other++;
}
}
System.out.println(line + "中大寫字母有:"+big+"個,小寫字母有:"+small+"個,數字字元:"+num+"個,其他字元:"+other+"個");
}
}
第三題(程式設計題: 15分 )
public class Test3 {
/**
* (1)有一個數字字串"25 11 -6 20 102 9",數字之間用空格間隔
* (2)利用氣泡排序對這串數字按照從小到大排序,生成一個數值有序的字串"-6 9 11 20 25 102"
*/
public static void main(String[] args) {
String s = "25 11 -6 20 102 9";
// 1. 通過空格切割字串得到字串陣列
String[] sArr = s.split(" ");
// 2. 將數字字串轉換成具體的數值,並用陣列進行儲存
int[] arr = new int[sArr.length];
for (int i = 0; i < sArr.length; i++) {
// 3. 將每一個數字字串轉換成對應的數字
arr[i] = Integer.parseInt(sArr[i]);
}
// 4. 氣泡排序
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 5. 建立StringBuffer物件用於陣列中元素的拼接
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]+ " ");
}
String result = sb.toString();
System.out.println(result);
}
}
第四題(程式設計題: 25分)
public class Test4 {
/**
* 定義一個MyStringUtil工具類,該類中定義三個方法,要求如下: (1)public static char[]
* toCharArray(String str) :
* 將給定的引數字串轉成對應的字元陣列(不能直接呼叫jdk中的工具類及String類中的tocharArray方法) (2) public
* static String getSingleString(String str) :
* 去除給定的引數字串中的重符字元(重複字元只保留一個),將新的字串返回
*
* (3)public static boolean isBalancedString(String str):
* 如果左右兩邊字元相同則返回true,否則返回false, 例如:abccba是對稱字元 例如:abcdecba不是對稱字元
*/
public static void main(String[] args) {
System.out.println(MyStringUtil.isBalancedString("abcdecba"));
}
}
class MyStringUtil {
/**
* @param str
* 接受一個字元 串
* @return 返回對應的字元陣列
*/
public static char[] toCharArray(String str) {
// 1. 建立char型別的陣列, 長度大小跟原字串長度一致
char[] arr = new char[str.length()];
for (int i = 0; i < str.length(); i++) {
// 2. 通過charAt方法拿到每一個字元,並且賦值給陣列中對應的索引.
arr[i] = str.charAt(i);
}
return arr;
}
public static String getSingleString(String str) {
// aaabbbccc // abc
// abc.contains("d");
// 1. 將字串拆分成字元陣列
char[] arr = str.toCharArray();
// 2. 定義新的容器, 用來儲存唯一的字元
StringBuffer sb = new StringBuffer();
// 3. 遍歷字元陣列拿到每一個字元
for (int i = 0; i < arr.length; i++) {
char c = arr[i];
// 4. 拿著每一個字元,判斷容器中是否包含傳入的字串.
if (!sb.toString().contains(c + "")) {
// 5. 如果不包含就儲存
sb.append(c);
}
}
return sb.toString();
}
public static boolean isBalancedString(String str) {
// 1. 將傳入的字串封裝成StringBuffer物件
StringBuffer sb = new StringBuffer(str);
// 2. 將資料翻轉
sb.reverse();
// 3. 如果翻轉後的結果跟原字串相同, 說明是對稱字串
if (str.equals(sb.toString())) {
return true;
} else {
return false;
}
}
}
第五題(程式設計題: 30分)
import java.util.Random;
public class Test5 {
/**
* 定義String getStr(char[] chs)靜態方法,方法內要求:從chs中隨機獲取4個元素,再和1個0-9之間(包含0和9)的整陣列成一個五個字元的字串。
定義main方法,方法內完成:
(1)定義長度為26,元素值為26個大寫英文字母的陣列chs
(2)傳遞陣列chs呼叫getStr(char[] chs)方法,獲取返回值,並在控制檯列印返回值
*/
public static void main(String[] args) {
char[] arr = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
System.out.println(getStr(arr));
}
public static String getStr(char[] chs){
// 隨機獲取, 需要建立Random物件
Random r = new Random();
// 需要將字元拼接到一起, 定義一個容器
StringBuffer sb = new StringBuffer();
for(int i = 1; i <= 4; i++){
// 根據陣列的長度生成隨機的索引
int index = r.nextInt(chs.length);
// 通過索引去陣列中獲取元素,儲存到容器當中
sb.append(chs[index]);
}
// 通過nextInt方法生成隨機的數字0-9
int num = r.nextInt(10);
// 將生成的結果新增到容器當中
sb.append(num);
// 轉成字串並返回
return sb.toString();
}
}