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)