but not getting the same output with when I use s = reader.readLine(); line 24. s = reader.readLine(); this is causing entire program to crash. Tried with Scanner also.
package com.codegym.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
/*
Request parser
*/
public class Solution {
public static void main(String[] args) throws MalformedURLException, IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = null;
// try {
s = reader.readLine();
reader.close();
// s="http://codegym.cc/alpha/index.html?obj=3.14&name=Amigo";
// } catch (IOException e) {
// e.printStackTrace();
// }
URL url = new URL(s);
//System.out.println(url);
String [] arr=s.split("[?&]");
// System.out.println(arr[0]);
// System.out.println(arr[1]);
// System.out.println(arr[2]);
String subString;
String [] parameter ;
String doub;
for(int i=1;i<arr.length;i++)
{
subString =arr[i];
parameter = subString.split("[=]");
doub=parameter[1];
// System.out.println(parameter[0]);
//System.out.println(parameter[1]);
//checking this is decimal for doubles
System.out.print(parameter[0]+" ");
}
System.out.println();
for(int i=1;i<arr.length;i++){
subString =arr[i];
parameter = subString.split("[=]");
doub=parameter[1];
if(parameter[0].equals("obj")){
String deciPatten = "([0-9].*)\\.([0-9].*)";
if (Pattern.matches(deciPatten, doub)) {
alert(Double.parseDouble(parameter[1]));
} else
alert((parameter[1]));
}
}
//write your code here
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println("String: " + value);
}
}