如下:看看满不满足要求,不对追问。
import javautilArrayList;import javautilCollections;
import javautilComparator;
import javautilHashMap;
import javautilScanner;
public class B {
public static void main(String[] args) {
Scanner in = new Scanner(Systemin);
int n = innextInt();
if(n > 50) {
Systemoutprint("No more than 50 contacts");
inclose();
return ;
}
ArrayList<HashMapEntry<String, String>> list;
HashMap<String, String> map = new HashMap<>();
//String [][]contact = new String [n][2];
for(int i = 0; i < n; i ++) {
String [] temp = new String [2];
temp[0] = innext();
if(temp[0]length() > 10) {
temp[0] = temp[0]substring(0, 10);
}
temp[1] = innext();
if(temp[1]length() > 10) {
temp[1] = temp[1]substring(0, 10);
}
mapput(temp[0], temp[1]);
}
inclose();
list = new ArrayList<>(mapentrySet());
Collectionssort(list, new Compare());
for(int i = 0; i < n; i ++) {
Systemoutprintln(format(listget(i)getKey()) + format(listget(i)getValue()));
}
}
static String format(String s) {
char [] c = new char[12 - slength()];
for(int i = 0; i < clength; i ++) {
c[i] = '#';
}
return StringvalueOf(c) + s;
}
static class Compare implements Comparator<HashMapEntry<String, String>> {
@Override
public int compare(HashMapEntry<String, String> o1, HashMapEntry<String, String> o2) {
int temp = o1getKey()compareTo(o2getKey());
if (temp > 0) {
return 1;
} else if (temp == 0) {
return 0;
} else {
return -1;
}
}
}
}
结果:
除非是英文姓名,可以按照首字母升序排列!C使用的是ASCII码表。没有汉字!如果是JAVA的话,那么使用Unicode表,里面就包括汉字了!
如果是字母的话,那么比较ASCII值的大小,小的在前面,大的在后面。另外编写程序要考虑错误情况,比如输入的是数字的时候怎么处理。这样严谨性比较好。
以上就是关于编写Java程序,输入N个用户的姓名和电话号码,按照用户姓名的词典顺序排列输出用户的姓名和电话号码全部的内容,包括:编写Java程序,输入N个用户的姓名和电话号码,按照用户姓名的词典顺序排列输出用户的姓名和电话号码、c语言关于姓名排序程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)