1. 编写一个Java应用程序。用户从键盘输入一个整数,程序将判断这个数是几位数并输出其位数,并判断这个数是否是回文数(是,则输出“是回文数”,否则输出“不是回文数”)。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。要求:定义两个方法,一个用于获取一个整数的位数,一个用于返回一个整数是否为回文数。
public class One {
public boolean fun(int n){
String s = String.valueOf(n);
String s2 = new StringBuffer(s).reverse().toString();
return s.equals(s2);
}
public int size(int n){
String s = String.valueOf(n);
return s.length();
}
}
2. 编写一个程序,由用户从键盘输入一个字符串,程序输出该字符串中的大写英文字母数,小写英文字母数以及非英文字母数。(用户键盘输入用Scanner类实现)
import java.util.*;
public class Two {
Scanner s;
int big = 0;
int small = 0;
int no = 0;
public void fun(){
s = new Scanner(System.in);
String str = s.next();
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(Character.isLowerCase(c)){
small++;
}else if(Character.isUpperCase(c)){
big++;
}else{
no++;
}
}
System.out.println("大写有"+big+"个");
System.out.println("小写有"+small+"个");
System.out.println("其他有"+no+"个");
}
}
3. 在安排教师监考时,需要从一组教师中随机选取n个教师参加监考。要求实现一个类RandomTeacher的静态方法public static String[] getRandomTeachers(String[] teachers, int n),能够从teachers中随机选择n个教师(名字)并返回。
import java.util.*;
//import java.math.*;
public class RandomTeacher {
public static String[] getRandomTeachers(String[] teachers, int n){
Set<Integer> s = new HashSet<Integer>();
Random ra = new Random();
while(s.size()!=n){
int i = ra.nextInt(teachers.length);
s.add(i);
}
Iterator<Integer> it=s.iterator();
String[] res = new String[n];
for(int i=0; it.hasNext();i++)
{
System.out.println(it.next());
res[i] = teachers[it.next()];
}
return res;
}
}
4. 假设某餐馆中每桌顾客点菜记录的格式为“北京烤鸭:189 西芹百合:15 清蒸鲈鱼:80”(每道菜的价格与下一道菜的名字之间有一个空格)。编写一个类的方法,能够接受键盘录入的符合上述格式的点菜内容字符串,输出点菜记录中每种菜的价格及总价格。
import java.util.*;
public class Four {
private static Scanner s;
public void fun(String a){
s = new Scanner(a);
s.useDelimiter(" |:");
boolean b = false;
int sum = 0;
int[] p = new int[20];
String[] c = new String[20];
for(int i = 0;s.hasNext();){
if(!b){
c[i] = s.next();
}else{
p[i] = Integer.valueOf(s.next());
sum += p[i];
i++;
}
b=!b;
}
for(int i=0; p[i]!='\0'; i++){
System.out.println(c[i]+" "+p[i]);
}
System.out.println("总价为"+sum);
}
}
5. 编写一个方法,返回一个double型的二维数组,数组中的元素通过解析字符串参数获得。例如,字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为:
d[0,0] = 1.0 d[0,1] = 2.0
d[1,0] = 3.0 d[1,1] = 4.0 d[1,2] = 5.0
d[2,0] = 6.0 d[2,1] = 7.0 d[2,2] = 8.0
public class Five {
double[][] a;
public void fun(String str){
String[] s1 = str.split(";");
a = new double[s1.length][];
for(int i=0; i<s1.length; i++){
String[] s2 = s1[i].split(",");
a[i] = new double[s2.length];
for(int j=0; j<s2.length; j++){
a[i][j] = Integer.valueOf(s2[j]);
}
}
for(double[] i:a){
for(double j:i){
System.out.print(j+" ");
}
System.out.println();
}
}
}