private boolean validateSno(double inSno) { //sno is the serial number int firstThree=(int)inSno; double secondThree=(inSno-firstThree)*1000; boolean same=false; double checkDigit=inSno*1000-(int)inSno; if(checkDigit>0.0) { same=false; } else { if(firstThree>=100&&firstThree<=300) { if(secondThree>=001&&secondThree<=999) { same=true; } } } return same; } I need the result to be in form XXX.YYY but as it is a real number I am stuck on how to split the first 3 numbers and the second 3 numbers. Each has its own validation requiredis there an easy way using mod/div or?
3 Réponses :
Par exemple Numéro 456.234
double number = 456.234; double firstThree = (int)number; \\ output 456 double lastThree = (number * 1000 % 1000); \\ output 234
Seul problème est que c'est un nombre réel. par exemple. 456.234
S'il vous plaît ajouter ce fait à la question.
Vous pouvez envisager d'utiliser une chaîne et une classe StringTokenzerizer.
C'est un moyen délicat mais pas si mal. P>
import java.util.StringTokenizer; public class TestAnyParser { public static void main(String[] args) { validateSno(456.234); } private static boolean validateSno(double inSno) { boolean isReal = false; String sInSno = String.valueOf(inSno); StringTokenizer stTok = new StringTokenizer(sInSno, "."); isReal = stTok.countTokens() == 2; if(isReal) { int realpart = Integer.parseInt(stTok.nextToken()); int imgpart = Integer.parseInt(stTok.nextToken()); System.out.println(realpart + ": " + imgpart); } else { //do something part. } return true; } }
Les suivantes utilisent la validation de chaîne avec une expression régulière pour vérifier que les numéros sont la longueur droite et dans la plage de droite notez le \\ d * " code > À la fin, cela doit également approuver une valeur comme 123.45600000001 P> P>
Fondamentalement, la question demande simplement à valider le numéro de série (double) dans le formulaire xxx.yyy où les 3 premiers numéros (XXX) doivent être compris entre 100 et 300 (inclus) et les seconde 3 numéros (AAA) doivent être compris entre 001 et 999 (inclus)