誰でも助けてくれますか? 私はコンタクトブックを管理する大規模なプロジェクトの一部としてメソッドを持っています。アドレス帳の連絡先をアルファベット順に並べ替える方法は?
私はString
を使用する必要がありますので、配列はありません。 できるだけcompareTo
を使用したいと思います。
説明である:所定のノートで:
この方法接触線(
6|cori|ben|[email protected]|4502334565接触線のexemple)を挿入します。コンタクトラインは、姓でアルファベット順に並べる必要があります。
このメソッドは、デリゲートを検証しません。
パラメータ帳我々は(パラメータから)接触ラインを紹介したい本
我々は非nullで本を仮定しますが、最初から空です。
非空であれば、このようにして形成されています
/*
3|Crevier|Simon|[email protected]|5145678988 (contact line)
1|Douglas|Sylvie|nothing|4507461234
2|Dumoulin|Fred|[email protected]|nothing
4|Girard|Myriam|nothing|nothing
*/
パラメータは、1行の魔女にフォーマットするために連絡先をcontactLineブック
に追加する必要があります私たちは、接触線であることを前提と非ヌル、空ではなく、正式な形式(例のように)
挿入後の新しい本の新しい弦。新しく返された本は正式に整理される必要があります。
このメソッドは、同じクラスのfindLastNameContact()メソッドを使用する必要があります(メソッドは、連絡線からの姓を取得します。例:3|Crevier|Simon|[email protected]|5145678988)=>クレヴァーは姓です。
このケースを無視する必要があります。
/*
----------------------------------------------
METHOD IF CONTACT IS INSERTED IN THE BOOK
----------------------------------------------
Insert 1|crook|hubert|[email protected]|4502765009 in the empty book... ERROR
Expected:
1|crook|hubert|[email protected]|4502765009
Have found:
Instert 2|aubre|Camille|aucun|5149098778... ERROR
Expected:
2|Aubre|Camille|aucun|5149098778
1|crook|hubert|[email protected]|4502765009
Have found:
1|crook|hubert|[email protected]|45027650092|aubre|Camille|aucun|5149098778
1|crook|hubert|[email protected]|4502765009
Instert 3|charland|Marc|[email protected]|nothing... ERROR -
NoSuchElementException unexpected.
Instert 4|mason|Isabelle|aucun|aucun... ERROR - NoSuchElementException unexpected.
Insert 5|fortin|Bruno|[email protected]|5142768898... ERROR - NoSuchElementException unexpected.
Insert 6|ZHE|Xang|[email protected]|4598765423... ERROR - NoSuchElementException unexpected.
Insert 7|morier|Dominic|[email protected]|4598765423... ERROR
Expected:
2|Aubre|Camille|aucun|5149098778
3|CHaRland|Marc|[email protected]|aucun
1|crook|hubert|[email protected]|4502765009
5|Fortin|Bruno|[email protected]|5142768898
4|Mason|Isabelle|aucun|aucun
7|Morier|Dominic|[email protected]|4598765423
6|ZHE|Xang|[email protected]|4598765423
Have found :
2|Aubre|Camille|nothing|5149098778
3|CHaRland|Marc|[email protected]|nothing
1|crook|hubert|[email protected]|4502765009
5|Fortin|Bruno|[email protected]|5142768898
4|Mason|Isabelle|nothing|nothing
6|ZHE|Xang|[email protected]|45987654237|morier|Dominic|[email protected]|4598765423
nothing
6|ZHE|Xang|[email protected]|4598765423
Insertion 8|alban|Roger|[email protected]|5143677788... ERROR - NoSuchElementException unexpected.
*/
public static String InsertThisContactInTheBook
(String book, String contactLine) {
String lastNameContact;
String id, lastName, givenName, email, phone;
String newBook = "";
lastNameContact= findLastNameContact(contactLine);//contact line is from outside, also the findLastNameContact, witch is extraxting la last name from contact line
//6|cori|ben|[email protected]|4502334565| (example of contact line)
StringTokenizer tokens = new StringTokenizer(book, "|");
// newBook = book+ contactLine;
while (tokens.hasMoreTokens()){
id = tokens.nextToken();
lastName = tokens.nextToken();
givenName = tokens.nextToken();
email= tokens.nextToken();
phone= tokens.nextToken();
if (lastName.compareToIgnoreCase(lastNameContact) > 0) {
newBook = book + contactLine + "\n" + id + "|" + lastName + "|" + givenName + "|" + email+ "|" + phone+ "\n";
}
}
return newBook;
}
申し訳ありませんが、フランス語で尋ねるのが簡単でした。質問は英語でしか扱われていません。ノートブックの連絡先をアルファベット順にソートする必要があります。 –