/*
* print substrings
* @author Biagioni, Edoardo
* @assignment lecture 2
* @date January 16, 2008
* @bugs none
*/
import java.util.Scanner;
import java.util.InputMismatchException;
public class Substring {
/* this main method is invoked when the program is started
*
* @param arguments string representations of two integers and a string
*
*/
public static void main(String [] arguments) {
if (arguments.length != 3) {
System.out.println("expecting 3 command-line arguments, got " +
arguments.length);
System.exit(1);
}
// exactly three arguments
Scanner arg1 = new Scanner(arguments[0]);
Scanner arg2 = new Scanner(arguments[1]);
int start = 0;
int finish = 0;
try { // get the start position
start = arg1.nextInt();
} catch(InputMismatchException ex) {
System.out.println("first argument is not a number");
System.exit(1);
}
try { // get the finish position (plus one)
finish = arg2.nextInt();
} catch(InputMismatchException ex) {
System.out.println("second argument is not a number");
System.exit(1);
}
try { // get the substring
String sub = arguments[2].substring(start, finish);
// and print it
System.out.println("\"" + arguments[2] + "\"" +
".substring(" + start + ", " + finish + ") = " +
"\"" + sub + "\"");
} catch (StringIndexOutOfBoundsException ex) {
// or report that it can't be done
System.out.println("illegal call to method substring");
ex.printStackTrace(); // boring stack trace...
System.exit(1);
}
}
}