① 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();
}
}