2017-10-17 7 views
-2

A titre d'exemple, j'ai un fichier txt qui contient une liste de chiens, un sur chaque ligne du fichier, puis "**" sur la dernière ligne. J'ai alors le code suivant pour le charger dans un ArrayList à utiliser dans un JComboBox.while boucle avec l'instruction if ne fonctionne pas

De cette façon, je peux simplement ajouter une autre ligne dans la zone de texte pour ajouter un autre chien.

Mon code exemple est le suivant

public class test{ 
static String temp; 

public static void main(String[] args) { 
List<String> picklistDogs = new ArrayList<String>(); 
File picklistFile = new File (filePath); 
try { 
    BufferedReader loadPickList = new BufferedReader (new FileReader(picklistFile)); 
    while(true) { 
     temp = loadPickList.readLine(); 
     if (temp != "**") { 
      picklistDogs.add(temp); 
     } else { 
      break; 
     } 
    } 
    loadPickList.close(); 
} 
catch(FileNotFoundException e){ 
    System.out.println("file not found"); 
} 
catch(IOException e){ 
    System.out.println("file io error"); 
} 
} // END of main 
} // END of class test 

Mes coutures problème à la déclaration que if déclenche jamais break pour sortir de la boucle while.

Toutes les solutions seraient appréciées.

+0

J'ai ajouté ce que je pense est l'étiquette de langue. S'il vous plaît modifier si ce n'est pas correct. (Et ne tag la langue à l'avenir.) – Bathsheba

+1

ce n'est pas comment vous comparez un 'String' – AxelH

+1

Merci les gars pour tous les commentaires, j'ai trouvé quelques exemples ici qui l'ont fait comme je l'ai fait ci-dessus. L'utilisation de 'equals' a résolu mon problème. –

Répondre

0

Afin de comparer les chaînes mieux utiliser java.lang.String # égal

1

Utilisez le code ci-dessous !temp.equals("**") .Essayez

if (!temp.equals("**")) { 
       picklistDogs.add(temp); 
      } else { 
       break; 
      } 
+0

Merci beaucoup Aniket –