Train Route Java Program

(Last Updated On: [post_updated])

Now you can get the train route information by simply inputting train number to the below program,

Requirement:
Jsoup jar

Train Route Java Program:

package in.javadomain;

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class TrainRoute {

	public static void main(String[] args) {
		TrainRoute tr = new TrainRoute();
		System.out.println(tr.getTrainSchedule("12635"));

	}

	private String getTrainSchedule(String trainNumber) {
		String trainRoute = null;
		String trainUrl = "http://www.indianrail.gov.in/cgi_bin/inet_trnnum_cgi.cgi";
		try {
			Document trainRouteDetails = Jsoup.connect(trainUrl).timeout(0)
					.data("lccp_trnname", trainNumber).post();
			String parsedTrainNumber = "Train No:"
					+ trainRouteDetails.select("table.table_border_both")
							.select("tbody").select("tr").get(1).select("td")
							.get(0).text() + "";
			String trainName = "Train Name:"
					+ trainRouteDetails.select("table.table_border_both")
							.select("tbody").select("tr").get(1).select("td")
							.get(1).text() + "";
			String Source = "Source:"
					+ trainRouteDetails.select("table.table_border_both")
							.select("tbody").select("tr").get(1).select("td")
							.get(2).text() + "";
			int numberOfPlacesForStopping = trainRouteDetails
					.select("table.table_border_both").select("tbody").get(1)
					.select("tr").size() - 1;
			// System.out.println("Total Stops "+numberOfPlacesForStopping);
			String totalStops = "Total Stops " + numberOfPlacesForStopping;
			int k = 0;
			int numberOfColumns = trainRouteDetails
					.select("table.table_border_both").select("tbody").get(1)
					.select("tr").select("td").size();
			String appendPlaceAndTime = null;
			for (int i = 0; i < numberOfColumns; i = i + 9) {
				int j = 2;
				k++;
				if (k <= numberOfPlacesForStopping - 1) {
					String stoppingPlace1 = trainRouteDetails
							.select("table.table_border_both").select("tbody")
							.get(1).select("tr").select("td").get(i + j).text();
					String stoppingPlaces1_arraivalTime = trainRouteDetails
							.select("table.table_border_both").select("tbody")
							.get(1).select("tr").select("td").get(i + 4).text();
					// i=i+8;
					if (appendPlaceAndTime != null) {
						appendPlaceAndTime = appendPlaceAndTime + "\n"
								+ stoppingPlace1 + "("
								+ stoppingPlaces1_arraivalTime + ")";
					} else {
						appendPlaceAndTime = stoppingPlace1 + "("
								+ stoppingPlaces1_arraivalTime + ")";
					}
				} else {
					String stoppingPlace1 = trainRouteDetails
							.select("table.table_border_both").select("tbody")
							.get(1).select("tr").select("td").get(i + j).text();
					String stoppingPlaces1_arraivalTime = trainRouteDetails
							.select("table.table_border_both").select("tbody")
							.get(1).select("tr").select("td").get(i + 4).text();
					appendPlaceAndTime = appendPlaceAndTime + "\n"
							+ stoppingPlace1 + "("
							+ stoppingPlaces1_arraivalTime + ")";
				}
			}

			trainRoute = parsedTrainNumber + "\n" + trainName + "\n" + Source
					+ "\n" + totalStops + "\n" + appendPlaceAndTime + "\n"
					+ "App By Javadomain.in";
			// System.out.println(trainRoute);
		} catch (IOException e) {
			trainRoute = "Server may be busy or down";
		}
		return trainRoute;
	}

}

Output:

Train No:12635
Train Name:VAIGAI EXP
Source:CHENNAI EGMORE
Total Stops 9
CHENNAI EGMORE(Source)
TAMBARAM(13:44)
CHENGALPATTU(14:13)
VILLUPARAM JN(15:45)
VRIDHACHALAM JN(16:28)
ARIYALUR(17:04)
TIRUCHCHIRAPALI(18:30)
DINDIGUL JN(20:03)
MADURAI JN(21:25)
App By Javadomain.in

Revert me back if you need further assistance.

402 total views, 0 views today

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *