「java按首字母排序」java中字母排序
今天给各位分享java按首字母排序的知识,其中也会对java中字母排序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、JAVA 汉字首字母排序
- 2、java 中有城市类 存在arraylist 怎么让它按名字首字母排序
- 3、java中怎样把输入的基本英文单词按首字母顺序排列?
- 4、JAVA通过数组按首字母排序
- 5、JAVA通过数组按首字母排序怎么做?
JAVA 汉字首字母排序
我知道用java可以通过汉字的获得到首字母。下面是源码:
import net.sourceforge.pinyin4j.PinyinHelper;
public class PinyinAPI {
/**
* 提取每个汉字的首字母(大写)
*
* @param str
* @return
*/
public static String getPinYinHeadChar(String str) {
if (isNull(str)) {
return "";
}
String convert = "";
for (int j = 0; j str.length(); j++) {
char word = str.charAt(j);
// 提取汉字的首字母
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
if (pinyinArray != null) {
convert += pinyinArray[0].charAt(0);
}
else {
convert += word;
}
}
convert = string2AllTrim(convert);
return convert.toUpperCase();
}
/*
* 判断字符串是否为空
*/
public static boolean isNull(Object strData) {
if (strData == null || String.valueOf(strData).trim().equals("")) {
return true;
}
return false;
}
/**
* 去掉字符串包含的所有空格
*
* @param value
* @return
*/
public static String string2AllTrim(String value) {
if (isNull(value)) {
return "";
}
return value.trim().replace(" ", "");
}
public static void main(String[] args) {
String ss = PinyinAPI.getPinYinHeadChar("中国");
System.out.print(ss);//ZG
}
}
java 中有城市类 存在arraylist 怎么让它按名字首字母排序
参考代码如下
import java.util.ArrayList;
import java.util.Comparator;
public class ListDemo {
public static void main(String[] args) {
ArrayListString city = new ArrayListString();
city.add("Jonesboro");
city.add("Chaohu");
city.add("LittleRock");
city.add("bridgeport");
city.add("Rome");
city.add("chicago");
System.out.println("排序前"+city);
//排序.
city.sort(new ComparatorString() {
//重点是这个函数
public int compare(String o1, String o2) {
//忽略掉大小写后,进行字符串的比较
String s1 = o1.toLowerCase();
String s2 = o2.toLowerCase();
return s1.compareTo(s2);//从a-z的排
//return s2.compareTo(s1);//从z-a的排
}
});
System.out.println("排序后"+city);
}
}
运行效果
排序前[Jonesboro, Chaohu, LittleRock, bridgeport, Rome, chicago]
排序后[bridgeport, Chaohu, chicago, Jonesboro, LittleRock, Rome]
java中怎样把输入的基本英文单词按首字母顺序排列?
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* 规则:大写字母前于小写字母
*
* @author Administrator
*
*/
public class SortWords {
private static final String[] array = { "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" };
public static void main(String[] args) {
SortWords sw = new SortWords();
ListString words = new ArrayListString();
words.add("book");
words.add("ear");
words.add("alert");
words.add("choice");
words.add("name");
words.add("memery");
words.add("fight");
words.add("call");
words.add("joy");
ListString list = sw.sort(words, "forward");
for (String str : list) {
System.out.println(str);
}
}
public ListString sort(ListString words, String type) {
ListWord list = new ArrayListWord();
ListString res = new ArrayListString();
for (String word : words) {
Word w = indexNum(word);
list.add(w);
}
switch (type) {
case "forward":
Collections.sort(list, new Forward());
for (Word w : list) {
res.add(w.getContent());
}
break;
case "back":
Collections.sort(list, new Back());
for (Word w : list) {
res.add(w.getContent());
}
break;
}
return res;
}
public Word indexNum(String word) {
String[] letters = word.split("");
String res = "";
Word w = new Word();
String letter = word.substring(0, 1);
for (int i = 0; i array.length; i++) {
String pattern = array[i];
if (letter.equalsIgnoreCase(pattern)) {
res += i;
break;
}
}
w.setContent(word);
w.setIndexNum(Integer.parseInt(res));
return w;
}
private class Forward implements Comparator {
@Override
public int compare(Object arg0, Object arg1) {
Word w1 = (Word) arg0;
Word w2 = (Word) arg1;
int flag = w1.getIndexNum() - w2.getIndexNum();
return flag;
}
}
private class Back implements Comparator {
@Override
public int compare(Object arg0, Object arg1) {
Word w1 = (Word) arg1;
Word w2 = (Word) arg0;
int flag = w1.getIndexNum() - w2.getIndexNum();
return flag;
}
}
}
class Word {
private String content;
private Integer indexNum;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Integer getIndexNum() {
return indexNum;
}
public void setIndexNum(Integer indexNum) {
this.indexNum = indexNum;
}
}
JAVA通过数组按首字母排序
package demo;
import java.util.Arrays;
public class Test {
public void sortStringArray() {
String[] arrayToSort = new String[] { "Oscar", "Charlie", "Ryan",
"Adam", "David","aff","Aff" };
System.out.println();
System.out.println("字符型数组排序,排序前:");
for (int i = 0; i arrayToSort.length; i++){
System.out.print(arrayToSort[i]+",");
}
System.out.println();
System.out.println("排序后:");
// 调用数组的静态排序方法sort,且不区分大小写
Arrays.sort(arrayToSort,String.CASE_INSENSITIVE_ORDER);
for (int i = 0; i arrayToSort.length; i++){
System.out.print(arrayToSort[i]+",");
}
}
public static void main(String[] args) {
new Test().sortStringArray();
}
}
运行结果:
字符型数组排序,排序前:
Oscar,Charlie,Ryan,Adam,David,aff,Aff,
排序后:
Adam,aff,Aff,Charlie,David,Oscar,Ryan,
希望对你有帮助
JAVA通过数组按首字母排序怎么做?
自己封装的一个工具类,可以将汉字按照拼音的首字母排序,支持对Model和字典排序.只能对首字母排序,不支持第二个字母, 实现的原理就是创建一个A-Z的数组,数组中的元素是字典,字典中有两个元素,一个是title,就是当前的首字母 A-Z中的一个,另一个是保存当前title对应的元素的数组,对传入的数组进行遍历获得数组中的一个元素,如果是Model或者字典通过传入的key的值获得要排序的字符串,获得字符串的拼音的首字母,判断拼音的首字母是A-Z中的哪一个,然后放到数组中的对应的字典的数组中.
后来又做了一个对英文的首字母排序的程序,原理和上面的一样,还省略了将汉字转化为拼音的步骤。工具类的名称是:NH_OrderByPinYinFirstLetter。
代码:使用的时候直接调用下面的方法就行,是一个加号方法,第一个参数是保存要排序的元素的数组,第二个参数:如果数组中是Model或者字典,就写排序的依据的key值,如果数组中不是Model或字典,就写nil。
[objc] view plain copy
// 方法
+ (NSMutableArray *)baseOrderPinYinOnArr:(NSMutableArray *)arr ByKey:(NSString *)key 返回值的类
// 返回一个有24个元素的数组,数组里的元素是字典
// 字典里有两对键值对
// title : 当前的拼音首字母 A - Z
// datas : 当前的拼音首字母对应的model所组成的数组
关于java按首字母排序和java中字母排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-24,除非注明,否则均为
原创文章,转载请注明出处。