① java comparator接口 字符串数组排序
importjava.util.Arrays;
importjava.util.Comparator;
publicclassYuGiOh
{
publicstaticvoidmain(String[]args)
{
String[]strs={"qwe","asfa","qfwagaa","rfbu","a","hlelllp"};
Arrays.sort(strs,newComparator<String>()
{
@Override
publicintcompare(Stringo1,Stringo2)
{
if(o1.length()>o2.length())
{
return1;
}
elseif(o1.length()<o2.length())
{
return-1;
}
else
{
return0;
}
}
});
System.out.println(Arrays.toString(strs));
}
}
② java字符串数组以关键字排序
用对象数组的排序方法来做,下例已验证:
importjava.util.*;
classTimplementsComparable<T>{
privateStrings;
publicT(Stringstr){
this.s=str;
}
publicintcompareTo(To){
if(Integer.parseInt(this.s.substring(s.length()-1,s.length()))>Integer.parseInt(o.s.substring(o.s.length()-1,o.s.length()))){
return1;
}elseif(Integer.parseInt(this.s.substring(s.length()-1,s.length()))<Integer.parseInt(o.s.substring(o.s.length()-1,o.s.length()))){
return-1;
}else{
return0;
}
}
publicStringtoString(){
returns;
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
String[]arr={"1113","2349","1124"};
List<T>list=newArrayList<T>();
for(inti=0;i<arr.length;i++){
list.add(newT(arr[i]));
}
T[]t=list.toArray(newT[]{});
Arrays.sort(t);
print(t);
}
publicstaticvoidprint(T[]t){
for(Tt1:t){
System.out.println(t1);
}
}
}
③ java 用冒泡排序法排序字符串数组
@org.junit.Test
publicvoidb(){
String[]strs={"avcd","bdce","avcdf","cced","bdce"};
for(inti=0;i<strs.length;i++){
//第一个字符的ascii码大,放前面
for(intj=i+1;j<strs.length;j++){
intnum=0;
compare(strs,i,j,num);
}
}
for(Stringstring:strs){
System.err.println(string);
}
}
/**
*@paramstrs
*@parami
*@paramnum
*/
privatevoidcompare(String[]strs,inti,intj,intnum){
//判断2个字符串谁的长度最小,则以当前长度作为num+1的最大标准
if(strs[i].length()>=strs[j].length()){
if(num+1<=strs[j].length()){
if(strs[j].charAt(num)>strs[i].charAt(num)){
Stringtemp=strs[i];
strs[i]=strs[j];
strs[j]=temp;
//若相等,则判断第二个
}elseif(strs[j].charAt(num)==strs[i].charAt(num)){
num++;
compare(strs,i,j,num);
}
}
}else{
if(num+1<=strs[i].length()){
if(strs[j].charAt(num)>strs[i].charAt(num)){
Stringtemp=strs[i];
strs[i]=strs[j];
strs[j]=temp;
//若相等,则判断第二个
}elseif(strs[j].charAt(num)==strs[i].charAt(num)){
num++;
compare(strs,i,j,num);
}
}else{
//表示当前字符串内容都一致,strs[j]的长度大。则放前面。
Stringtemp=strs[i];
strs[i]=strs[j];
strs[j]=temp;
}
}
}
④ java语言建立一个班级学生姓名的字符串数组并进行排序
importjava.text.Collator;
importjava.util.Arrays;
importjava.util.Comparator;
publicclassNameSortDemo{
publicstaticvoidmain(String[]args){
String[]names={"孙小美","阿土伯","小明","钱夫人","小红","小菜"};
System.out.println("排序前:");
for(Stringname:names){
System.out.print(name+"");
}
System.out.println();
Comparatorcmp=Collator.getInstance(java.util.Locale.CHINA);//排序规则
Arrays.sort(names,cmp);//排序
System.out.println("排序后:");
for(Stringname:names){
System.out.print(name+"");
}
}
}
输出
排序前:
孙小美阿土伯小明钱夫人小红小菜
按拼音排序后:
阿土伯钱夫人孙小美小菜小红小明
⑤ java字符串数组以关键字排序
额,不想开eclipse,代码就不写了,给个提示吧,这种东西,如果老是要参考别人的代码来理解,那么编程是永远提高不了的,废话不多说
1.
输入输出流对文件中的字符串进行读取,可以用字符流(filereader),也可以用字节流(fileinputstream,字节流读取到的是字节,所以需要转化成字符串)
2.
比较的方法:有几种吧
a)string对象的contains方法(字符串中是否包含有输入的字符串,有则认为可能是关键字);b)string对象的indexof方法(有则认为可能是关键字);c)由于存放在文件中的字符串每个关键字肯定是由某个符号分开的,可以先进行split分割,之后遍历分割得到的字符串数组
几种比较的方法,前两种还需要进一步判断在文件中相应字符串的前后字符是什么,如果是分隔符,那么就说明输入的是关键字了
好了,还有别的问题再提出来吧,代码我是懒得写的~
⑥ Java中怎么对数组中的字符串进行排序
import Java.util.Arrays;
public class xulie {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String []str = {"abc","bca","cab","cba","aaa","111","232","112","ABC"};
Arrays.sort(str);
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
}
希望可以帮到你
⑦ Java中怎么对数组中的字符串进行排序
publicclassTe{
publicstaticvoidmain(String[]args){
String[]Target={"梅花A","小王","方块9","方块K","黑桃2","红心3"};
sort(Target);
for(inti=0;i<Target.length;i++){
System.out.print(Target[i]+",");
}
}
privatestaticvoidsort(String[]target){
finalString[]sortR={"3","4","5","6","7","8","9","10","J","Q","K","A","2","小王","大王"};
intsize=target.length;
int[]temps=newint[size];
for(inti=0;i<target.length;i++){
for(intj=0;j<sortR.length;j++){
if(target[i].contains(sortR[j])){
temps[i]=j;
}
}
}
for(inti=0;i<size-1;i++){
for(intj=0;j<size-1;j++){
if(temps[j]>temps[j+1]){
StringsesTemp=target[j];
inttemp=temps[j];
temps[j]=temps[j+1];
temps[j+1]=temp;
target[j]=target[j+1];
target[j+1]=sesTemp;
}
}
}
}
}
⑧ java中应该怎样对字符串数组进行排序
可以使用冒泡排序,选择排序等多种方式就行排序,两个for循环嵌套就可以或者使用sort()方法进行快速排序
⑨ 编写一个java程序对一个字符串数组进行排序
importjava.util.Arrays;
publicclassStringDateSort{
publicstaticvoidmain(String[]args){
StringnumString="2310-8037108";
StringsortStr=sortNumberString(numString);
System.out.println("排序的结果是"+sortStr);
}
(StringnumString){
//1.将给定的字符串分解成多个数字格式字符串
String[]numStrings=toStringArray(numString);
//2.将字符串数组转成int数组
int[]nums=toIntArray(numStrings);
//3.对数组排序
sort(nums);
//4.将int数组转成字符串
returntoString(nums);
}
privatestaticStringtoString(int[]nums){
StringBufferstringBuffer=newStringBuffer();
for(inti=0;i<nums.length;i++){
if(i!=nums.length-1){
stringBuffer.append(nums[i]+"<");
}else{
stringBuffer.append(nums[i]);
}
}
returnstringBuffer.toString();
}
privatestaticvoidsort(int[]nums){
Arrays.sort(nums);
}
privatestaticint[]toIntArray(String[]numStrings){
int[]nums=newint[numStrings.length];
for(inti=0;i<numStrings.length;i++){
Strings=numStrings[i];
nums[i]=Integer.parseInt(s);
}
returnnums;
}
privatestaticString[]toStringArray(StringnumString){
String[]numberStr=numString.split("");
for(inti=0;i<numberStr.length;i++){
System.out.println("抽出数字"+numberStr[i]);
}
returnnumberStr;
}
}
⑩ java中怎么对一串字符进行排序!
importjava.util.Arrays;
publicclassStringSort{
publicstaticvoidmain(String[]args){
Stringstring="togoodtoonostringandnow";
StringsortString=sortChar(string);
System.out.println(sortString);
}
privatestaticStringsortChar(Stringstr){
//1.将字符串转化成数组
char[]chs=stringToArray(str);
//2.对数组进行排序
sort(chs);
//3.将数组转成字符串
returntoString(chs);
}
privatestaticStringtoString(char[]chs){
returnnewString(chs);
}
//对字符数组进行升序排序
privatestaticvoidsort(char[]chs){
Arrays.sort(chs);
}
//将字符串转化成为数组
privatestaticchar[]stringToArray(Stringstring){
returnstring.toCharArray();
}
}