2014-04-08 13 views
5
import java.io.*; 
import java.util.*; 
class usingDelimiters 
{ 
    public static void main(String args[]) 
    { 
     Scanner dis=new Scanner(System.in); 
     int a,b,c; 
     a=dis.nextInt(); 
     b=dis.nextInt(); 
     c=dis.nextInt(); 
     System.out.println("a="+a); 
     System.out.println("b="+b); 
     System.out.println("c="+c); 
    } 
} 

Ten program działa poprawnie, gdy mój wkład jest 1 2 3 (oddzielone spacją) Ale, jak zmodyfikować swój program kiedy mój wkład jest 1,2,3 (oddzielone przecinkami)Jak czytać całkowitych oddzielonych przecinkami wejścia w Javie

+0

liczby całkowite ze przecinkiem == wartości rozdzielone przecinkami == CSV == użyj OpenCSV? Ręcznie jest OK, jeśli jest to kod zabawkowy, ale w przypadku poważnej pracy należy rozważyć użycie OpenCSV. – fge

Odpowiedz

5

można użyć metody nextLine czytać ciąg i użyć metody podziału oddzielić przecinkiem tak:

public static void main(String args[]) 
    { 
     Scanner dis=new Scanner(System.in); 
     int a,b,c; 
     String line; 
     String[] lineVector; 

     line = dis.nextLine(); //read 1,2,3 

     //separate all values by comma 
     lineVector = line.split(","); 

     //parsing the values to Integer 
     a=Integer.parseInt(lineVector[0]); 
     b=Integer.parseInt(lineVector[1]); 
     c=Integer.parseInt(lineVector[2]); 

     System.out.println("a="+a); 
     System.out.println("b="+b); 
     System.out.println("c="+c); 
    } 

Ta metoda będzie praca z 3 wartości oddzielonych przecinkami tylko.

Jeśli potrzebujesz zmienić ilość wartości, możesz użyć pętli, aby uzyskać wartości z wektora.

9

Można użyć ogranicznika dla elementów nieliczbowych, które oznaczyją dowolne cyfry jako ograniczniki.

Przykładowo:

dis.useDelimiter("\\D"); 

Sposób useDelimiter wykonuje Pattern lub reprezentację String o Pattern.

Pełny przykład:

Scanner dis=new Scanner(System.in); 
dis.useDelimiter("\\D"); 
int a,b,c; 
a=dis.nextInt(); 
b=dis.nextInt(); 
c=dis.nextInt(); 
System.out.println(a + " " + b + " " + c); 
dis.close(); 

wejścia (jednej lub)

  • 1,2,3
  • 1 2 3

wyjściowy

1 2 3 

Uwaga

  • Nie zapomnij close Twój Scanner!
  • Zobacz API dlas dla dodatkowej zabawy ograniczając wprowadzane dane.
Powiązane problemy