2016-03-27 5 views
0

学校からの作品では、入力によってフルネームを10個まで使用する必要があります。各フルネームには少なくとも3つの名前が必要です長さに達したときに終了するか、または「end」と書いたときにすでに有効な名前が5つあります。この後、フルネーム、ラストネーム、ランダムなミドルネームの名前を取得する必要があります。私たちはJava noobsであり、助けが必要です。10個のフルネーム(複数の名前を持つ)と多くの制限を受け取ります

文字列から、我々は唯一の方法で使用することができます。これは、今我々が持っているコードであるのcharAt(int型)、長さ()、のindexOf(...)、(トリム)とSUBSTRING(...)

をそれ私たちがどこにも行かないようだが、最新の問題は配列がどうにかしてスクランブルされるということだ。

static List<String[]> listarrays = new ArrayList<String[]>(); 
private static Scanner keyboard; 
public static void main(String[] args) { 
    System.out.println("10 nomes"); 

    for(int i= 0 ; i<10; i++){ 

     keyboard = new Scanner(System.in); 
     String input = keyboard.nextLine(); 
     inputtoarray(input); 
     if (input.equalsIgnoreCase("fim")){ 
      break; 
     } 

    } 
    String [][] arrayofnames = listtoarray(listarrays); 
    System.out.print(Arrays.toString(arrayofnames[1])); 
} 

public static void SetToArrayString(Set<String> set){ 
    String[] array = new String[set.size()]; 
    int index = 0; 

    for(String i : set) { 
     array[index++] = i; 
    } 
    listarrays.add(array); 
} 
public static String[][] listtoarray(List<String[]> list){ 
    String[][] array = new String[list.size()][]; 
    int index = 0 ; 
    for(String[] i : list){ 
     array[index++] = i; 
    } 
    String[][] arrayofnames = array; 
    return arrayofnames; 
} 
public static void inputtoarray(String input){ 
    int length = 0; 
    Set<String> names = new HashSet<String>(); 
    for (int i = 0 ; i < input.length(); i++){ 
     char a_char = input.charAt(i); 

     if (a_char == ' '){ 

      String word1 = input.substring(length,i+1); 
      length += word1.length(); 

      names.add(word1); 
     } 
     if (i == input.length() - 1){ 
      String word1 = input.substring(length, i+1); 

      names.add(word1); 
     } 
    } 
    P04BaralhadorDeNomes.SetToArrayString(names); 
} 

どうかお手伝いしてください。

答えて

1

あなたのプロジェクトでは、10個の有効な名前が与えられますか?その代わりに、あなたのアレイを作り直すの(それはあなたの方法でスクランブルなっている「inputtoarray」)場合はあなたがそれをインスタンス化する必要があります。これは、あなたが単に含む別の文字列配列へのyのインデックスを割り当てることができます

//[y-index][x-index] 
String[][] nommes = new String[10][3]; 

名前。そのために、あなたはこのようなものを持っているでしょう:

String input = keyboard.nextLine(); 
String fist = input.subString(0, input.indexOf(" ")); 
input = input.subString(input.indexOf(" ") + 1) 
// Follow the pattern for the middle and last names 

これは(名前の終わりを)入力を取り、スペースまでのテキストを取得してやっています。入力行は部分文字列であるため、最初の名前に設定されたテキストは切り捨てられます。

入力が「最初のミドルラスト」だった場合、最初は「ファースト」に等しくなります。入力は「Middle Last」に設定されます。最初の名前のために何が行われたのかを繰り返すことはあなたに「中」を与えるでしょう。あなたが残したのは最後の名前です。 3つの名前の値を使って、次のような文字列配列を作ることができます:

String[] nameParts = new String[]{first, middle, last}; 
関連する問題