Bonjour tout le monde,

J'ai une question tout bête:

J'ai un petit programme qui permet de lire, ligne par ligne, le contenu d'un fichier txt.

Ce dernier enregistre la ligne active dans une variable.

Ensuite, il lit la ligne et extrait les chiffres qui sont avant le séparateur ( exemple :

ligne 1:

4;5;56

il extrait 4;

il me reste ensuite 5;56

là, quand je fais un System.out.println(ligne.length()) il me donne 3, est-ce par ce que la numérotation commence à zéro ?

Voici le code en entier :

Merci d'avance pour votre aide.

beegees

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.io.*;
public class CorrectionParPhilippe
{
	// Faire fichier avec différents chiffres séparés par un ; comme ci dessous,
	// p.ex : 12;4;7
	public static void main(String[]args) throws IOException
	{
		int positionSeparateur;
		String sNombre;
		//String ligne="12;4;7";
		String ligne="";
		int nombre;
		char separateur=';';
		int longueur;
		int somme=0;
	//on donc besoin de trois choses pour lire dans un fichier :
	//1) le filereader
	//2) le bufferedReader
	//3) close 
	//attention :  on a besoin aussi d'un readLine(), ce readLine est une méthode
	//du buffered
	FileReader fic= new FileReader("C:\\somme.txt");
	//Lecture de la premiere ligne
	BufferedReader fichier=new BufferedReader(fic);
	ligne=fichier.readLine();
	System.out.println("Lecture du fichier :");
	//tant que ligne (c'est à dire la ligne active du fichier txt) est différente
	//de rien
	while(ligne !=null)
		{	
		  //on donne la longueur de la ligne à la variable longueur
			longueur=ligne.length();
			//tant que longueur est supérieur à Zéro car :
			//si j'ai cette ligne : 7;12;9 la longueur est de 6, quand j'aurais passé
			//une première fois, on prend 7 et ; il nous reste alors 12;9, vue que l'on
			//commence à zéro, on a encore 3 caractères (0,1,2,3 --> 12;9)
 
			while(longueur>0)
			{
			positionSeparateur=ligne.indexOf(separateur);
			if (positionSeparateur>0)
			{
			sNombre=ligne.substring(0,positionSeparateur);
			ligne=ligne.substring(positionSeparateur+1);	
			}
			else
			{
				sNombre=ligne;
				ligne="";
			}
			System.out.println(sNombre);
			nombre=Integer.parseInt(sNombre);
			somme+=nombre;
			longueur=ligne.length();
			System.out.println("la longueur " + longueur);
			}
			//Lecture de la ligne suivante
			ligne=fichier.readLine();		
 
		}
 
		System.out.println("=================");
		System.out.println("Total = "+somme);
	fichier.close();
 
 
 
	}
}