2017-10-28 21 views
0

私は、次の形式のIDを持っている:彼らができる(XXXXXXYYY00000がは、その6つの最初の文字で文字列を並べ替え

私は何をしようとしていますが6つの最初の文字(6×年代のアルファベット順に整理単一の文字列を取得することですが例えば

改行文字で区切られたそれぞれの新しいIDを持つ)任意の文字)も:

AOPSIKPMI23495はBWLMBEPMI00001

私がこれまで持っていることである前に行くだろう

私はそれを解決するために私の問題に近づく方法を知らない。

私のIDはアルファベット順に、最初の6文字で整理します(つまり、6文字の最初の文字が付いていれば、それは次の3文字で解決されません)。まだ私の弦を保つ?

+2

私はゼロエフォートな要件ダンプであるため、この質問をd​​ownvotedしました。あなたの試みの[最小、完全で、かつ検証可能な例](http://stackoverflow.com/help/mcve)を表示するために質問を編集することができたり、難しかった箇所を正確に*明らかにすることができれば、この下降は引っ込められます。 –

+5

6つの最初の文字による並べ替えはどういう意味ですか?文字列をソートするだけで、最初の6文字でソートされます。 – Mureinik

+0

ほとんどの場合、接頭辞でストリームとグループを使用します。 – jrtapsell

答えて

2

あなたが最初の6でリストを並べ替えることができますCollectors.joiningを使用して、各文字列を"\n"の区切り文字で区切ります。

String result = myList.stream().sorted(Comparator.comparing(e -> e.substring(0,6))) 
           .collect(Collectors.joining("\n")); 
+0

私はこの答えを受け入れましたが、 "e"が何であるかを尋ねたかったのです。 –

+1

'e'は現在の文字列オブジェクトを表す識別子です。 lambdasの紹介については、https://www.callicoder.com/java-lambda-expression-tutorial/を参照してください。 –

+1

私の悪い、私はそうではないと思った。 –

0

あなたは、単にちょうど最初の6 cahractersを比較するコンパレータを実装することができます

class FirstSixCharComparator implements Comparator<String> { 
    @Override 
    public int compare(String a, String b) { 
     return a.substring(0,6)compareTo(b.substring(0,6)); 
    } 
} 

次にソートを実行するためのコンパレータを使用します。

Collections.sort(list, new FirstSixCharComparator<String>()); //for collections  
Arrays.sort(array, new FirstSixCharComparator<String>());  //for arrays 
-1

このコードはあなたの問題を解決するはずです。

import java.util.ArrayList; 
    import java.util.Collections; 
    import java.util.List; 

public class Sample { 

    public static void main(String[] args) { 
     List<String> words = new ArrayList<String>(); 
     words.add("AOPSIKDDD23495"); 
     words.add("BWLMBEPMI00001"); 
     Collections.sort(words); 
     System.out.println(words);  
    } 

} 
+0

問題は私が持っている主な問題を解決しないとあなたが示唆していることです:最初の6文字だけでソート。最初の6文字が等しく、次の3文字が等しくない場合、最初の6文字は同じなので、2文字は特にソートしないでください。 –

+0

大丈夫このサンプルを例にして、[AOPSIKDDD23495、AOPSIKMM23495、AOPSIKZZZ23495] と出力として何を期待しているか教えてください –

関連する問題