JAVA笔试算法题及答案.pdf
文本预览下载声明
1.现在输入n 个数字,以逗号,分开;然后可选择升或者降序排序
我的评论:
本题的splitStringByComma(String )方法纯属多余,可以用String 的split 方法一句话代
替,且可读性也更强,下面的一段话源自JDK1.6API,StringTokenizer 类已不再提倡使用,
保留仅为旧代码。
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使
用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
importjava.util.*;
publicclassbycomma{
public static String[] splitStringByComma(String source){
if(source null||source.trim().equals())
returnnull;
StringTokenizer commaToker new StringTokenizer(source,,);
String[]result new String[commaToker.countTokens()];
int i 0;
while(commaToker.hasMoreTokens()){
result[i] commaToker.nextToken();
i++;
}
returnresult;
}
public staticvoidmain(String args[]){
String[] s splitStringByComma(5,8,7,4,3,9,1);
int[]ii new int[s.length];
for(int i 0;iii.length;i++){
ii[i] Integer.parseInt(s[i]);
}
Arrays.sort(ii);
//asc
for(int i 0;iii.length;i++ ){
System.out.println(ii[i]);
}
//desc
for(int i (s.length-1);i 0;i--){
System.out.println(ii[i]);
}
}
}
2.编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符
串。但是要保证汉字不被截半个,如我ABC4,应该截为我AB,输入我ABC 汉DEF,
6,应该输出为我ABC而不是我ABC+汉的半个。
代码:
public staticboolean isLetter(char c){
intk 0X80;
return c/k 0?true:false;
}
public static int lengths(String strSrc){
if(strSrc null){
return 0;
}
int len 0;
char[]strChar strSrc.toCharArray();
for (int i 0;istrChar.length;i++){
len++;
if(!isLetter(strChar[i])) len++;
}
return len;
}
public static String subString(String origin,int len){
if(origin null ||origin
显示全部