Wednesday, 14 December 2016

Chapter 12 Exercise 27, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

12.27 (Replace words)
Suppose you have a lot of files in a directory that contain words Exercisei_j,
where i and j are digits. Write a program that pads a 0 before i if i is a
single digit and 0 before j if j is a single digit. For example, the word Exercise2_1
in a file will be replaced by Exercise02_01. In Java, when you pass the symbol *
from the command line, it refers to all files in the directory (see Supplement III.V).

import java.io.File;
public class Exercise_27 {

public static void main(String[] args) {

//Kit.display(args);
if (args.length == 0) {
System.out.println("Invalid Arguments.");
System.out.println("Usage: java Chapter_12.Exercise_27");
System.exit(1);
}
for (String s : args) {

if (s.matches("Exercise[\\d]_[\\d].*")) {
StringBuilder sb = new StringBuilder(s);
sb.insert(s.indexOf('_') - 1, "0");
sb.insert(s.indexOf('_') + 2, "0");
new File(s).renameTo(new File(sb.toString()));
}
}

}

}