2014-12-03 1 views
0

Отказ от ответственности. Я был в java около месяца. Я полностью потерял это. Я пытаюсь, чтобы пользователь вводил фразу, и если в массиве найдены строки этой фразы, она возвращает соответствующую строку в одной строке. если строка не найдена, она просто пропустит ее.Попытка конвертировать строку в другую строку из массива в файл только на первом месте

так что если кто-то напечатал в «собаки едят мою рыбу»

и массив содержит: собака Перро ест жевал рыба желтая форель

было бы вернуть: Перро жевал желтый форель

Я еще не написал код, чтобы распечатать то, что у меня есть, но я знаю, что этот код не работает.

всякая помощь была бы принята с благодарностью.

import java.io.*; 
import java.util.*; 

public class ArrayTest2 { 
    public static void main(String[] args) 
    throws java.io.IOException { 
     Scanner input = new Scanner(System.in); 

     String userString = " "; 
     userString = englishString();  

     String[][] wordList = new String[10][2]; 
     loadEnglishString(wordList); 

    } 
    public static String englishString() { 
     Scanner input = new Scanner(System.in); 
     String s1 = " "; 
     System.out.println("Please enter a phrase to translate: "); 
     s1 = input.nextLine().trim().toUpperCase(); 

     return s1; 
    } 



    public static void loadEnglishString(String[][] wordList) 
     throws java.io.IOException { 
     String filName = " ";  
     filName = ("/home/chrism/ArrayTest2.txt"); 
     Scanner input = new Scanner(new File(filName)); 
     while(input.hasNextLine()) { 
      String line = input.nextLine(); 
      StringTokenizer st = new StringTokenizer(line); 
      while (st.hasMoreTokens()) { 
       boolean stop = false; 
       for(int i = 0; i < wordList.length; i++) { 
        if(stop) 
         break; 
        for(int j = 0; j < wordList[i].length; j++) 
         if(input.hasNextLine()) 
          wordList[i][j] = input.nextLine(); 
         else { 
          stop = true; 
         } 
         break; 
       } 
      } 
     } 

     input.close(); 
    } 


} 
+0

Вопросы: почему вы двумерный массив объявлен? 'String [] [] wordList = new String [10] [2];'? – j4rey89

+0

Вам нужно будет объяснить, в чем проблема, которую вы видите, если есть ошибка или исключение, то соответствующее сообщение или трассировка стека. – MJSG

+0

Вы имеете в виду, когда введенное значение будет узнать, существует ли это значение в массиве и удалить его? – Secondo

ответ

0

Вы обязательно захотите изменить свой цикл for. Скобки - ваш друг.

for(int i = 0; i < wordList.length; i++) { 
    if(stop) 
     break; 
    for(int j = 0; j < wordList[i].length; j++) { 
     if(input.hasNextLine()) 
      wordList[i][j] = input.nextLine(); 
     else { 
      stop = true; 
     } 

    } 
} 

, как вы имели его, оба приращения регистрировали, как мертвый код, потому что ваш второй перерыв всегда называется первый раз через петлю, и ваш else регистрировал в сочетании с первым if(stop).

Редактировать: не знаю наверняка о том, как еще будет парить, но перерыв определенно называется после первого прогона.

0

// упаковка com.myjava.stokenizerr;

import java.util.StringTokenizer; 

public class MyStringTokenizer { 

    public static void main(String a[]){ 

/* your code for user input string */ 
/* assume input as dog eat my fish */ 

     String input = "dog eat my fish"; 
     String msg = "dog perro eat munched fish yellow trout"; 
     StringTokenizer st1 = new StringTokenizer(msg," "); 
     StringTokenizer st2 = new StringTokenizer(input," "); 
     while(st1.hasMoreTokens()){ 
    System.out.println(st1.nextToken()); // Store this one(first) string array 
     } 
    while(st2.hasMoreTokens()) { 
     System.out.println(st2.nextToken()); // Store in another(second) array 
     } 
     /* Now Compare both the arrays */ 
     /* If the strings are equal then remove string from second array */\ 
     /* If equal just skip it */ 
    } 
} 

См выше код st1.nextToken() и st2.Tokens() даст вам значения Для сравнения взять две петли

for(i==0;i<array1length();i++) { 

for(j==0;j<array2length();j++) { 
     // Your code for comparsion 
    } 
    } 
+0

Вы сказали, что практиковали java с одного месяца, а затем проделали простой способ, как В Array1 у вас есть = «собака перро съедает рыбу желтую форель» Для ввода пользователем вы можете разбить строку на токены и сохраните его в Array2 Затем сравните оба массива – VenkatKrishna

Смежные вопросы