2016-03-27 18 views
-2

Yanlış bir açıklama yaptım. Şimdi daha iyi bir açıklama yapıyorum. Benim sorunum, istisna değil hata işlemidir. Yani kodum aşağıda. Ben örnekHata Bazı kodlarda işaretleme

import java.util.Scanner; 

public static void main(String[] args) { 
    System.out.println("Type in the expression with no empty spaces: "); 

    Scanner sc = new Scanner(System.in); 
    String s = sc.nextLine(); 

    String[] tokens = split("[*,/,+,-"); 

    for (int i = 0; i < 1; i++) { 
     String delims = tokens[1]; 

     double n1 = Double.parseDouble(tokens[0]); 
     double n2 = Double.parseDouble(tokens[2]); 

     switch(tokens) case1;"+" System.out.println(n1+n2) // All cases 
    }      
} 
+0

([girişi java.util.Scanner kullanarak doğrulama] Olası yinelenen http://stackoverflow.com/ sorular/3059333/doğrulama-giriş-kullanarak-java-util-tarayıcı) – Tom

cevap

0

Sen İfade geçerli olup olmadığını kontrol etmek için Regex kullanabilir olmayan pozitif bir tamsayı girin istemiyorum ben zekâ deneyin catch kontrol edebilir. String sınıf Kullanıcının girişi doğrulamak için if koşulu içine matches kullanabilirsiniz Regex ile bir dize doğrulamak için matches() yöntemi, ör .:

String regex = "[0-9]+[-+/\\*][0-9]+"; 
String expression = "3+6"; 
System.out.println("3+6".matches(regex)); 

sağlar. Bu yapıldıktan sonra, işlenenleri ve operatörü çıkarmak için 'split ("\ b")' kullanabilirsiniz.

güncelleme

aşağıdaki gibi görünecektir mantığı yukarıda ekledikten sonra kod:

Scanner sc = new Scanner(System.in); 
String s = sc.nextLine(); 
String regex = "[0-9]+[-+/\\*][0-9]+"; 
if(s.matches(regex)){ 
    String[] tokens = s.split("\\b"); 
    //Your logic 
}else{ 
    System.err.println("Please try in a valid expression!"); 
} 
+0

Eğer kod yazabilir misiniz? – Nyunus

+0

Bir örnek ekledim. –

+0

Yanlışlıkla ihtiyacım yok Önceki ödev yazdım – Nyunus