2016-03-30 10 views
1
import java.util.Scanner; 
public class DigitSumming { 

    public static Scanner in = new Scanner(System.in); 
    public static void main(String[] args) { 
     System.out.println ("Please enter a sentence: "); 
     String userSentence = in.next(); 

     //writing for loop to check each character 
     int sum = 0; 
     int i; 
     for (i = 0; i < userSentence.length(); i++) { 
      if (Character.isDigit(userSentence.charAt(i))){ 
       System.out.println("number: "+ userSentence.charAt(i)); 
      } 
     } 
    } 
} 

Bu şimdiye programı çalıştırdığınızda i elde ediyoruz cümlenin ilk kelimeden sonra çalışmayı durduracak şekilde görünüyor:Hane için bir cümleyi kontrol etmeye çalışıyorum. Kod

Please enter a sentence: 

7 ate 9 

Çıktı:

number: 7 

cevap

0

Sadece next() yerine nextLine() kullanmanız gerekir.

Düzeltilmiş kod parçacığı:

import java.util.Scanner; 
public class DigitSumming { 

    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     System.out.println ("Please enter a sentence: "); 
     /* Corrected Here */ 
     String userSentence = in.nextLine(); 

     //writing for loop to check each character 
     int sum = 0, i; 
     for (i = 0; i < userSentence.length(); i++) { 
      if (Character.isDigit(userSentence.charAt(i))){ 
       System.out.println("number: "+ userSentence.charAt(i)); 
      } 
     } 
    } 
} 

Girdi:

7 ate 9 

Çıktı:

number: 7 
number: 9 
0

Üzerinde nextLine çağırmak gerekir Scanner.

Aksi takdirde, varsayılan sınırlayıcı kullanılacaktır (beyaz boşluk), bu nedenle userSentence yalnızca "7"'dir.

API itibaren

:

bulur ve bu tarayıcıdan sonraki tam belirteci döndürür. Tam bir belirteç önce gelir ve sınırlayıcı desenle eşleşen giriş izler.

... ve ayrıca:

A Scanner varsayılan olarak boşluk eşleşen bir sınırlayıcı motif kullanılarak jeton içine girişini keser.

İlgili konular