1.
1) 写出问题所在
输入的号码必须按给定的“区号-电话号码-分机号”的格式输入,如果不按这个格式,比如没有用“-”间隔或者用其他符号间隔比如“,”,程序就会报错;如果只输入电话号码部分,不输入区号和分机号,程序也会报错。如果输入的是“一”而不是“-”,“一”会和电话号码一起输出。
2) 写出问题产生的原因
代码固定了输入格式,必须输入区号、电话号码、分机号,不能少一个,否则程序会储存错误的号码或者报错。
3) 给出修改后的代码
public class PhoneNum {
public String getPhoneNumber(String strPhoneNum){
String result = "";
if((strPhoneNum==null) || "".equals(strPhoneNum)){
return "";
}
if(strPhoneNum.length()==17){
for(int i=0;i<17;i++){
result = strPhoneNum.substring(5, 12);
}
return result;
}
else{
return result = "输入错误";
}
}
}
2.
1) 写出代码,并符合代码规范(命名要规范,不可直接写在main方法中,需要有类注释、方法注释、以及适当的行注释)
package cn.wjw.select;
//选择排序
public class ArraySort {
public int[] arraySort (int[] arr){//创建ArraySort方法
for(int i=0;i<arr.length-1;i++){
for (int j=i+1;j<arr.length; j++ ){//循环的对数组内的相邻的两个数进行比较
if(arr[i]<arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;//从大到小进行选择排序
}
}
}
return arr;//返回排序后的数组
}
public static void main(String[] args){
int[] num = {4,8,16,9,46};
ArraySort x = new ArraySort();
int[] y=x.arraySort(num);
for(int a = 0;a<y.length;a++){
System.out.println(y[a]);
}
}
}
2) 说明你的设计思路
第一个for循环定义一个i,i要小于数组长度,同时不能是最后一位;第二个循环定义一个j,j是i的后一位,j也要小于数组长度。将i和j进行比较,如果i要小于j,那么将j往前移一位,最后得出从大到小的选择排序。
3) 写出可能出错的情况(至少五种)
① {1,-1,1,-1,1.-1}
② {0,3,-50,0,64,999}
③ {0,0,0,0,0,0}
④ 数组为空
⑤ {1,2,3,4,5,6}
4) 编写JUnit单元测试,将前面给出的可能出错的测试数据放入单元测试进行测试