Preface 1. Getting Started: Compiling, Running, and Debugging 1.1 Compiling and Running Java: JDK 1.2 Editing and Compiling with a Color-Highlighting Editor 1.3 Compiling, Running, and Testing with an IDE 1.4 Using CLASSPATH Effectively 1.5 Using the com.darwinsys API Classes from This Book 1.6 Compiling the Source Code Examples from This Book 1.7 Automating Compilation with Ant 1.8 Running Applets 1.9 Dealing with Deprecation Warnings 1.10 Conditional Debugging Without #ifdef 1.11 Debugging Printouts 1.12 Maintaining Program Correctness with Assertions 1.13 Debugging with JDB 1.14 Unit Testing: Avoid the Need for Debuggers 1.15 Getting Readable Tracebacks 1.16 Finding More Java Source Code 1.17 Program: Debug 2. Interacting with the Environment 2.1 Getting Environment Variables 2.2 System Properties 2.3 Writing JDK Release-Dependent Code 2.4 Writing Operating System-Dependent Code 2.5 Using Extensions or Other Packaged APIs 2.6 Parsing Command-Line Arguments 3. Strings and Things 3.1 Taking Strings Apart with Substrings 3.2 Taking Strings Apart with StringTokenizer 3.3 StringBuffer 3.4 Processing a String One Character at a Time 3.5 Aligning Strings 3.6 Converting Between Unicode Characters and Strings 3.7 Reversing a String by Word or by Character 3.8 Expanding and Compressing Tabs 3.9 Controlling Case 3.10 Indenting Text Documents 3.11 Entering Nonprintable Characters 3.12 Trimming Blanks from the End of a String 3.13 Parsing Comma-Separated Data 3.14 Program: A Simple Text Formatter 3.15 Program: Soundex Name Comparisons 4. Pattern Matching with Regular Expressions 4.1 Regular Expression Syntax 4.2 Using regexes in Java: Test for a Pattern 4.3 Finding the Matching Text 4.4 Replacing the Matched Text 4.5 Printing All Occurrences of a Pattern 4.6 Printing Lines Containing a Pattern 4.7 Controlling Case in Regular Expressions 4.8 Matching "Accented" or Composite Characters 4.9 Matching Newlines in Text 4.10 Program: Apache Logfile Parsing 4.11 Program: Data Mining 4.12 Program: Full Grep 5. Numbers 5.1 Checking Whether a String Is a Valid Number 5.2 Storing a Larger Number in a Smaller Number 5.3 Converting Numbers to Objects and Vice Versa 5.4 Taking a Fraction of an Integer Without Using Floating Point 5.5 Ensuring the Accuracy of Floating-Point Numbers 5.6 Comparing Floating-Point Numbers 5.7 Rounding Floating-Point Numbers 5.8 Formatting Numbers 5.9 Converting Between Binary, Octal, Decimal, and Hexadecimal 5.10 Operating on a Series of Integers 5.11 Working with Roman Numerals 5.12 Formatting with Correct Plurals 5.13 Generating Random Numbers 5.14 Generating Better Random Numbers 5.15 Calculating Trigonometric Functions 5.16 Taking Logarithms 5.17 Multiplying Matrices 5.18 Using Complex Numbers 5.19 Handling Very Large Numbers 5.20 Program: TempConverter 5.21 Program: Number Palindromes 6. Dates and Times 6.1 Finding Today's Date 6.2 Printing Date/Time in a Given Format 6.3 Representing Dates in Other Epochs 6.4 Converting YMDHMS to a Cale
Ian F. Darwin has worked in the computer industry for three decades: with Unix since 1980, Java since 1995, and OpenBSD since 1998. He wrote the freeware file(1) command used on Linux and BSD and is the author of Checking C Programs with Lint, Java Cookbook, and over seventy articles and several courses (both university and commercial) on C and Unix. In addition to programming and consulting, Ian teaches Unix, C, and Java for Learning Tree International, one of the world's largest technical training companies. He runs OpenBSD on most of his computers, and he runs a mirror of The Unix History Society archive.
"If you like cookbooks and program in Java then this is one of the best available." - Mike James, VSJ, November 2004