Posts Tagged ‘String (computer science)’

The Java programming language is a strongly-typed language and it consist of eight primitive data types (byte, short, int, long, float, double, boolean, char). For more about java primitive data type, please visit http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html

Well, sometime we really need to know what is the limit of the primitive types in java. With following simple code, we can print out the limit of each of the java primitive data types (except boolean and char) 🙂

public class PrintTypeLimit
{
    public static void main(String args[]) {        System.out.println("Min byte value   = " + Byte.MIN_VALUE);
        System.out.println("Max byte value   = " + Byte.MAX_VALUE);
        System.out.println("Min short value  = " + Short.MIN_VALUE);
        System.out.println("Max short value  = " + Short.MAX_VALUE);
        System.out.println("Min int value    = " + Integer.MIN_VALUE);
        System.out.println("Max int value    = " + Integer.MAX_VALUE);
        System.out.println("Min long value    = " + Long.MIN_VALUE);
        System.out.println("Max long value    = " + Long.MAX_VALUE);
        System.out.println("Min float value  = " + Float.MIN_VALUE);
        System.out.println("Max float value  = " + Float.MAX_VALUE);
        System.out.println("Min double value = " + Double.MIN_VALUE);
        System.out.println("Max double value = " + Double.MAX_VALUE);
    }
}

 

Output

Min byte value   = -128
Max byte value   = 127
Min short value  = -32768
Max short value  = 32767
Min int value    = -2147483648
Max int value    = 2147483647
Min long value    = -9223372036854775808
Max long value    = 9223372036854775807
Min float value  = 1.4E-45
Max float value  = 3.4028235E38
Min double value = 4.9E-324
Max double value = 1.7976931348623157E308

 

1101_Get $25 off $200 + Free Shipping Any Order at CHEFS Catalog

Java (programming language)

In this section, you will learn how we can bound the type parameter.

We can bound the types which are permitted to be passed to type parameter section. For example, we can create a method that operates only on number or its subclasses like Integer, Float etc.

Restricting type parameters section is known as Bounded Type Parameters.

You can declare bounded type parameter as follows :

public class AnimalActions<A extends Animal>

“A extends Animal” means whatever type we pass for the substitution of type parameter must extend/implement the Animal class/interface.

Here we can use only extends for both classes as well as for interface. Given below declaration is not valid :

public class AnimalActions<A implements Animal>

Given below the complete example :

Example :

public class BoundedTypeParamDemo<A> {

private A a;

public void set(A a) {
this.a = a;
}

public A get() {
return a;
}

public <U extends Number> void inspect(U u) {
System.out.println("T: " + a.getClass().getName());
System.out.println("U: " + a.getClass().getName());
}

public static void main(String[] args) {
BoundedTypeParamDemo integerBox = new BoundedTypeParamDemo();
integerBox.set(new Integer(10));
integerBox.inspect(10);
// The below line will give error
integerBox.inspect("some text");
}
}

Output :

The above code will give error because the generic method inspect(U u)  is not applicable for the arguments  of String type. The String type  is not a valid substitute for the bounded parameter :

Exception in thread “main” java.lang.Error: Unresolved compilation problem:
Bound mismatch: The generic method inspect(U) of type BoundedTypeParamDemo<A> is not applicable for the arguments (String). The inferred type String is not a valid substitute for the bounded parameter <U extends Number> at BoundedTypeParamDemo.main(BoundedTypeParamDemo.java:25)

Download Source Code

 

May - Oct 2006 Calendar

 

 

Finding the difference between two dates isn’t as straightforward as subtracting the two dates and dividing the result by /*(24 * 60 * 60 * 1000). Infact, its erroneous!

Going the ‘milliseconds way’ will lead to rounding off errors and they become most evident once you have a little thing like “Daylight Savings Time” come into the picture.

The Correct Way:

 

/** Using Calendar – THE CORRECT WAY**/
//assert: startDate must be before endDate
public static long daysBetween(Calendar startDate, Calendar endDate) {
Calendar date = (Calendar) startDate.clone();
long daysBetween = 0;
while (date.before(endDate)) {
date.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
return daysBetween;
}
}

 

 

 

 

 

or more efficiently,   if you’re using the Gregorian Calendar:

 

/** Using Calendar – THE CORRECT (& Faster) WAY**/
/****Needs testing …… Anyone?****/
//assert: startDate must be before endDate
public static long daysBetween(final Calendar startDate, final Calendar endDate) {
int MILLIS_IN_DAY = 1000 * 60 * 60 * 24;
long endInstant = endDate.getTimeInMillis();
int presumedDays = (int) ((endInstant – startDate.getTimeInMillis()) / MILLIS_IN_DAY);
Calendar cursor = (Calendar) startDate.clone();
cursor.add(Calendar.DAY_OF_YEAR, presumedDays);
long instant = cursor.getTimeInMillis();
if (instant == endInstant)
return presumedDays;
final int step = instant < endInstant ? 1 : -1;
do {
cursor.add(Calendar.DAY_OF_MONTH, step);
presumedDays += step;
} while (cursor.getTimeInMillis() != endInstant);
return presumedDays;
}

 
Lets take, for example, the difference between the two dates 03/24/2007 and 03/25/2007 should be 1 day;
However, using the millisecond route, you’ll get 0 days,

 

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class DateTest {

public class DateTest {

static SimpleDateFormat sdf = new SimpleDateFormat(“dd-MMM-yyyy”);

public static void main(String[] args) {

TimeZone.setDefault(TimeZone.getTimeZone(“Europe/London”));

//diff between these 2 dates should be 1
Date d1 = new Date(“01/01/2007 12:00:00”);
Date d2 = new Date(“01/02/2007 12:00:00”);

//diff between these 2 dates should be 1
Date d3 = new Date(“03/24/2007 12:00:00”);
Date d4 = new Date(“03/25/2007 12:00:00”);

Calendar cal1 = Calendar.getInstance();cal1.setTime(d1);
Calendar cal2 = Calendar.getInstance();cal2.setTime(d2);
Calendar cal3 = Calendar.getInstance();cal3.setTime(d3);
Calendar cal4 = Calendar.getInstance();cal4.setTime(d4);

printOutput(“Manual   “, d1, d2, calculateDays(d1, d2));
printOutput(“Calendar “, d1, d2, daysBetween(cal1, cal2));
System.out.println(“—“);
printOutput(“Manual   “, d3, d4, calculateDays(d3, d4));
printOutput(“Calendar “, d3, d4, daysBetween(cal3, cal4));
}

private static void printOutput(String type, Date d1, Date d2, long result) {
System.out.println(type+ “- Days between: ” + sdf.format(d1)
+ ” and ” + sdf.format(d2) + ” is: ” + result);
}

/** Manual Method – YIELDS INCORRECT RESULTS – DO NOT USE**/
/* This method is used to find the no of days between the given dates */
public static long calculateDays(Date dateEarly, Date dateLater) {
return (dateLater.getTime() – dateEarly.getTime()) / (24 * 60 * 60 * 1000);
}

/** Using Calendar – THE CORRECT WAY**/
public static long daysBetween(Calendar startDate, Calendar endDate) {
Calendar date = (Calendar) startDate.clone();
long daysBetween = 0;
while (date.before(endDate)) {
date.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
return daysBetween;
}
}

 

 

 

OUTPUT:
Manual – Days between: 01-Jan-2007 and 02-Jan-2007 is: 1
Calendar – Days between: 01-Jan-2007 and 02-Jan-2007 is: 1

Manual – Days between: 24-Mar-2007 and 25-Mar-2007 is: 0
Calendar – Days between: 24-Mar-2007 and 25-Mar-2007 is: 1

 

 

 

JPOs printed clone legs

OK after my article about ISO 8583 let’s go deeper into programming using Java + JPOS library.

Quote from JPOS website:

jPOS is a Java® platform-based, mission-critical, ISO-8583 based financial transaction library/framework that can be customized and extended in order to implement financial interchanges.

So first thing to do is download JPOS from it website.

Then we setup our development environment by creating Java Project using your favorites IDE. Add to the project all jar in JPOS library.
Here’s my Eclipse  package explorer looks like.

package explorer

package explorer

 

Read More »

 

Using client side JavaScript is an efficient way to validate the user input in web forms. When there are many fields in the form, the JavaScript validation becomes too complex.

The JavaScript class presented here makes the form validations many times easier.

Contents

  1. Download the JavaScript form validation script
  2. Using the form validation script
  3. Adding a custom validation
  4. Table of Validation Descriptors
  5. Showing the form validation errors next to the element
  6. ‘Conditional’ form validations
  7. Form validation without coding!

How to add JavaScript Form Validation quickly

First, download the JavaScript form validation script here.
The zip file contains the javascript file, examples.

The script has a catalog of almost all the common validation types built-in.

The idea is to create a set of “validation descriptors” associated with each element in a form. The “validation descriptor” is nothing but a string specifying the type of validation to be performed.

Each field in the form can have zero one or more validations. For example, you can have an input field that should not be empty, should be less than 25 chars and should be alpha-numeric.

In other words, in order to validate a field, you just associate a set of validation descriptors for each input field in the form.

Just Choose Validations!
Simfatic Forms is a feature-rich web form maker.
You just have to choose the validations. More info & downloads

Using the form validation script

  1. Include gen_validatorv4.js in your html file just before closing the HEAD tag
<script src="gen_validatorv4.js" type="text/javascript"></script>
</head>
  1. Just after defining your form, create a Validator() object passing the name of the form
<form id='myform' action="">
 <!----Your input fields go here -->
 </form>
<script type="text/javascript">
 var frmvalidator  = new Validator("myform");
                     //where myform is the name/id of your form
  1. Now, add the validations required
frmvalidator.addValidation("FirstName","req","Please enter your First Name");

The format of the addValidation() function is:

frmvalidator.addValidation(Field Name, Validation Descriptor, Error String);

See below for the complete list of validation descriptors. The third parameter ( Error string ) is optional.
You can add any number of validations to a field.

frmvalidator.addValidation("FirstName","req","Please enter your First Name");
frmvalidator.addValidation("FirstName","maxlen=40",
                                          "Max length for FirstName is 40");

Example

Here is a complete example:

<form action="" id="myform" >
<p>
    <label for='FirstName'>First Name:</label>
    <input type="text" id="FirstName" name="FirstName" />
</p>
<p>
    <label for='LastName'>Last Name:</label>
    <input type="text" id="LastName" name="LastName" />
</p>
<p>
    <label for='EMail'>EMail:</label>
    <input type="text" id="EMail" name="EMail" />
</p>
<p>
    <label for='Phone'>Phone:</label>
    <input type="text" id="Phone" name="Phone" />
</p>
<p>
    <label for='Address'>Address:</label>
    <textarea cols="20" rows="5" id="Address" name="Address"></textarea>
</p>
<p>
    <label for='Country'>Country:</label>
    <select id="Country"  name="Country">
        <option value="000" selected="selected">[choose yours]</option>
        <option value="008">Albania</option>
        <option value="012">Algeria</option>
        <option value="016">American Samoa</option>
        <option value="020">Andorra</option>
        <option value="024">Angola</option>
        <option value="660">Anguilla</option>
        <option value="010">Antarctica</option>
        <option value="028">Antigua And Barbuda</option>
        <option value="032">Argentina</option>
        <option value="051">Armenia</option>
        <option value="533">Aruba</option>
    </select>
</p>
<p>
    <input type="submit" name="submit" value="Submit">
</p>
</form>
<script  type="text/javascript">
 var frmvalidator = new Validator("myform");
 frmvalidator.addValidation("FirstName","req","Please enter your First Name");
 frmvalidator.addValidation("FirstName","maxlen=20",
        "Max length for FirstName is 20");
 frmvalidator.addValidation("LastName","req");
 frmvalidator.addValidation("LastName","maxlen=20");
 frmvalidator.addValidation("Email","maxlen=50");
 frmvalidator.addValidation("Email","req");
 frmvalidator.addValidation("Email","email");
 frmvalidator.addValidation("Phone","maxlen=50");
 frmvalidator.addValidation("Phone","numeric");
 frmvalidator.addValidation("Address","maxlen=50");
 frmvalidator.addValidation("Country","dontselect=000");
</script>

Some Additional Notes

  • The form validators should be created only after defining the HTML form (only after the tag. )
  • Your form should have a distinguished name. If there are more than one form in the same page, you can add validators for each of them. The names of the forms and the validators should not clash.
  • You can’t use the javascript onsubmit event of the form if it you are using this validator script. It is because the validator script automatically overrides the onsubmit event. If you want to add a custom validation, see the section below

Adding a custom validation

If you want to add a custom validation, which is not provided by the validation descriptors, you can do so. Here are the steps:

  1. Create a javascript function which returns true or false depending on the validation
function DoCustomValidation()
{
  var frm = document.forms["myform"];
  if(frm.pwd1.value != frm.pwd2.value)
  {
    sfm_show_error_msg('The Password and verified password does not match!',frm.pwd1);
    return false;
  }
  else
  {
    return true;
  }
}

sfm_show_error_msg() function displays the error message in your chosen style. The first parameter is the error message and the second parameter is the input object.

  1. Associate the validation function with the validator object.
frmvalidator.setAddnlValidationFunction("DoCustomValidation");

The custom validation function will be called automatically after other validations.

If you want to do more than one custom validations, you can do all those validations in the same function.

function DoCustomValidation()
{
  var frm = document.forms["myform"];
  if(false == DoMyValidationOne())
  {
    sfm_show_error_msg('Validation One Failed!');
    return false;
  }
  else
  if(false == DoMyValidationTwo())
  {
    sfm_show_error_msg('Validation Two Failed!');
    return false;
  }
  else
  {
    return true;
  }
}

where DoMyValidationOne() and DoMyValidationTwo() are custom functions for validation.

Clear All Validations

In some dynamically programmed pages, it may be required to change the validations in the form at run time. For such cases, a function is included which clears all validations in the validator object.

frmvalidator.clearAllValidations();

This function call clears all validations you set.

Set focus on validation failure

By default, if there is a validation error, the focus is set on the input element having the error. You can disable this behavior by calling:

frmvalidator.EnableFocusOnError(false);

Table of Validation Descriptors

Validation Descriptor Usage
required or
req
The field should not be empty.Note that this validation if for fields like Textbox and multi-line text box. For ‘selections’ like drop down and radio group, use an appropriate validation like ‘dontselect’ or ‘selone_radio’.
maxlen=??? or
maxlength=???
Limits the length of the input.
For example, if the maximum size permitted is 25, give the validation descriptor as “maxlen=25″
minlen=??? or
minlength=???
Checks the length of the entered string to the required minimum.
Example “minlen=5″
alphanumeric or
alnum
The input can contain alphabetic or numeric characters only.
(Note that space or punctuation also are not allowed since those characters are not alpha numeric)
alphanumeric_space
alnum_s
Allows only alphabetic, numeric and space characters
num
numeric
Allow numbers only
alpha
alphabetic
Allow only alphabetic characters.
alpha_s
alphabetic_space
Allows alphabetic and space characters
email Validates the field to be a proper email address.
(Note, However that the validation can’t check whether the email address exists or not)
lt=???
lessthan=???
Verify the data to be less than the value passed. Valid only for numeric fields.
Example: if the value should be less than 1000 give validation description as “lt=1000″
gt=???
greaterthan=???
Verify the data to be greater than the value passed. Valid only for numeric fields.
Example: if the value should be greater than 10 give validation description as “gt=10″
regexp=??? Match the input with a regular expression.
Example: “regexp=^[A-Za-z]{1,20}$” allow up to 20 alphabetic characters.
dontselect=?? This validation descriptor is valid only for drop down lists. The drop down select list boxes usually will have one item saying ‘Select One’ (and that item will be selected by default). The user should select an option other than this ‘Select One’ item.
If the valueof this default option is ’000′, the validation description should be “dontselect=000″Dropdown box with default selected

Drop down list source

dontselectchk=?? This validation descriptor is only for check boxes. The user should not select the given check box. Provide the value of the check box instead of ??
For example, dontselectchk=on
shouldselchk=?? This validation descriptor is only for check boxes. The user should select the given check box. Provide the value of the check box instead of ??
For example, shouldselchk=on
selone_radio One of the radio buttons should be selected.
Example:

chktestValidator.addValidation("Options","selone");
Compare two input elements
eqelmnt=??? Compare two input elements. For example: password and confirm password. Replace ??? with the name of the other input element.
Example:

frmvalidator.addValidation("confpassword","eqelmnt=password",
 "The confirmed password is not same as password");
neelmnt=??? The value should not be equal to the other input element
Example:

frmvalidator.addValidation("password","neelmnt=username",
"The password should not be same as username");
ltelmnt=??? The input should be less than the other input. Give the name of the other input instead of ???
leelmnt=??? The input should be less than or equal to the other input. Give the name of the other input instead of ???
gtelmnt=??? The input should be greater than the other input. Give the name of the other input instead of ???
geelmnt=??? The input should be greater than or equal to the other input. Give the name of the other input instead of ???

Go to the second part of this post to learn about the advanced features of this validation script.