You are on page 1of 9

byte: The byte data type is an 8-bit signed two's complement integer.

It has a minimum value of -128 and a maximum value of 127 (inclusive). The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters. They can also be used in place of int where their limits help to clarify your code; the fact that a variable's range is limited can serve as a form of documtenation. short: The short data type is a 16-bit signed two's complement integer. It has a minimum value of -32,768 and a maximum value of 32,767 (inclusive). As with byte, the same guidelines apply: you can use a short to save memory in large arrays, in situations where the memory savings actually matters. int: The int data type is a 32-bit signed two's complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive). For integral values, this data type is generally the default choice unless there is a reason (like the above) to choose something else. This data type will most likely be large enough for the numbers your program will use, but if you need a wider range of values, use long instead. long: The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by int. float: The float data type is a single-precision 32-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in section 4.2.3 of the Java Language Specification. As with the recommendations for byte and short, use a float (instead of double) if you need to save memory in large arrays of floating point numbers. This data type should never be used for precise values, such as currency. For that, you will need to use the java.math.BigDecimal class instead. Numbers and Strings covers BigDecimal and other useful classes provided by the Java platform. double: The double data type is a double-precision 64-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in section 4.2.3 of the Java Language Specification. For decimal values, this data type is generally the default choice. As mentioned above, this data type should never be used for precise values, such as currency. boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined. char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).

Formatting Numeric Print Output


Earlier you saw the use of the print and println methods for printing strings to standard output (System.out). Since all numbers can be converted to strings (as you will see later in this lesson), you can use these methods to print out an arbitrary mixture of strings and numbers. The Java programming language has other methods, however, that allow you to exercise much more control over your print output when numbers are included.

The printf and format Methods


The java.io package includes a PrintStream class that has two formatting methods that you can use to replace print and println. These methods, format and printf, are equivalent to one another. The familiar System.out that you have been using happens to be a PrintStream object, so you can invoke PrintStream methods on System.out. Thus, you can use format or printf anywhere in your code where you have previously been using print or println. For example,
System.out.format(.....);

The syntax for these two java.io.PrintStream methods is the same:


public PrintStream format(String format, Object... args)

where format is a string that specifies the formatting to be used and args is a list of the variables to be printed using that formatting. A simple example would be
System.out.format("The value of the float variable is %f, while the value of the " + "integer variable is %d, and the string is %s", floatVar, intVar, stringVar); The first parameter, format, is a format string specifying how the objects in the second parameter, args,

are to be formatted. The format string contains plain text as well as format specifiers, which are special characters that format the arguments of Object... args. (The notation Object... args is called varargs, which means that the number of arguments may vary.)

Format specifiers begin with a percent sign (%) and end with a converter. The converter is a character indicating the type of argument to be formatted. In between the percent sign (%) and the converter you can have optional flags and specifiers. There are many converters, flags, and specifiers, which are documented in java.util.Formatter Here is a basic example:
int i = 461012; System.out.format("The value of i is: %d%n", i); The %d specifies that the single variable is a decimal integer. The %n is a platform-independent newline

character. The output is:


The value of i is: 461012

The printf and format methods are overloaded. Each has a version with the following syntax:

public PrintStream format(Locale l, String format, Object... args)

To print numbers in the French system (where a comma is used in place of the decimal place in the English representation of floating point numbers), for example, you would use:
System.out.format(Locale.FRANCE, "The value of the float variable is %f, while the value of the " + "integer variable is %d, and the string is %s%n", floatVar, intVar, stringVar);

Note: The discussion in this section covers just the basics of the format and printf methods. Further detail can be found in the Basic I/O section titled "Formatting". Using String.format to create strings is covered in Strings.

The DecimalFormat Class


You can use the java.text.DecimalFormat class to control the display of leading and trailing zeros, prefixes and suffixes, grouping (thousands) separators, and the decimal separator. DecimalFormat offers a great deal of flexibility in the formatting of numbers, but it can make your code more complex.

The example that follows creates a DecimalFormat object, myFormatter, by passing a pattern string to the DecimalFormat constructor. The format() method, which DecimalFormat inherits from NumberFormat, is then invoked by myFormatterit accepts a double value as an argument and returns the formatted number in a string: Here is a sample program that illustrates the use of DecimalFormat:

###### Set the error state of the stream to true.


write
public void write(byte[] buf, int off, int len)

Write len bytes from the specified byte array starting at offset off to this stream. If automatic flushing is enabled then the flush method will be invoked. Note that the bytes will be written as given; to write characters that will be translated according to the platform's default character encoding, use the print(char) or println(char) methods.

Parameters o buf - A byte array o off - Offset from which to start taking bytes o len - Number of bytes to write Overrides o write in class FilterOutputStream

write
public void write(int b)

Write the specified byte to this stream. If the byte is a newline and automatic flushing is enabled then the flush method will be invoked. Note that the byte is written as given; to write a character that will be translated according to the platform's default character encoding, use the print(char) or println(char) methods.

Parameters o b - The byte to be written Overrides o write in class FilterOutputStream See Also o print o println

####################3

Example for format:

import java.text.*; public class DecimalFormatDemo { static public void customFormat(String pattern, double value ) { DecimalFormat myFormatter = new DecimalFormat(pattern); String output = myFormatter.format(value); System.out.println(value + " " + pattern + " " + output); } static public void main(String[] args) { customFormat("###,###.###", 123456.789); customFormat("###.##", 123456.789); customFormat("000000.000", 123.78); customFormat("$###,###.###", 12345.67); } }

The output is:


123456.789 ###,###.### 123,456.789 123456.789 ###.## 123456.79 123.78 000000.000 000123.780 12345.67 $###,###.### $12,345.67

######################################################################################### Java doesn't have a printf method. To provide the implementation of printf method of C in java, the java has two print methods. They are 1. print() 2. println() The first method prints the text in braces on the same line, while the second is used to print on the next line. In fact, ln in println() stands for next line. We need not use /n while working in java. Read more: http://wiki.answers.com/Q/The_Java_method_printf_is_based_on_the#ixzz1V4ZLO5vW ##################################################################################

Introduction to Java printf


The printf package for Java provides some powerful methods for formatting text. In this document, an introduction to formatted output of some of Java's datatype is given with help of examples. The Format class provides several static methods for formatted writing, such as

fprintf, printf and sprintf. These methods are inspired and very look-a-like to the equally named methods found in the C-language. (about 1000 words)
Hello world!

We start with the classical example of writing "Hello world!" to the standard output.
import com.braju.format.*; public class example01 { public static void main(String[] args) { Format.printf("Hello world!\n"); } }

On line 1 we import all classes to be used, which in this case is only com.braju.format.Format. Basically, all your programs making use of the printf package will have a line like this. On line 5, is the code that writes "Hello world!". Its result is exactly the same as the code System.out.println("Hello world!"); would give. We are using a static method called printf in the Format class. The '\n' character is a system independent carriage return (this is not the case if you use that character with System.out.print).

Example:
String[] user = {"world", "Adam", "Eve", "Bill"}; int[] age = {5e9, 24, 20, 5}; Format.printf("Name: Age:\n"); Format.printf("-------------------\n"); for (int i=0; i<user.length; i++) { Format.printf("%-8s %10d\n", new Parameters(user[i]).add(age[i]));

example:

String[] user = {"Adam", "Eve"}; int[] age = {24, 20}; Format.printf("%s & %s are together %d years old.\n", new Parameters(user[0]).add(user[1]).add(age[0]+age[1]));

This code will produce the output:


Adam & Eve are together 44 years old.

#################################################3
public class PrintfDemo { public static void main(String args[]) { System.out.println("Here are some numeric values " + "in different formats.\n"); System.out.printf("Various integer formats: "); System.out.printf("%d %(d %+d %05d\n", 3, -3, 3, 3); System.out.println(); System.out.printf("Default floating-point format: %f\n", 1234567.123); System.out.printf("Floating-point with commas: %,f\n", 1234567.123); System.out.printf("Negative floating-point default: %,f\n", -1234567.123); System.out.printf("Negative floating-point option: %,(f\n", -1234567.123); System.out.println(); System.out.printf("Line-up positive and negative values:\n"); System.out.printf("% ,.2f\n% ,.2f\n", 1234567.123, -1234567.123); } }

Write >>>>>>>>>>>>>>>

public void write(int b)

Write the specified byte to this stream. If the byte is a newline and automatic flushing is enabled then the flush method will be invoked.

Note that the byte is written as given; to write a character that will be translated according to the platform's default character encoding, use the print(char) or println(char) methods.
Overrides:
write in class FilterOutputStream

Parameters:
b - The byte to be written

See Also:
print(char), println(char)

printf
From Wikipedia, the free encyclopedia

An example of the printf function.

Printf functions (which stands for "print formatted") are a class of functions typically associated with some types of programming languages. They accept a string parameter called the format string, which specifies a method for rendering an arbitrary number of varied data type parameter(s) into a string. This string is then by default printed on the standard output stream, but variants exist that perform other tasks with the result. Characters in the format string are usually copied literally into the function's output, with the other parameters being rendered into the resulting text at points marked by format specifiers, which are typically introduced by a % character.

You might also like