Подскажите, пожалуйста, как лучше реализовать вывод.
НЕ ПРОХОДИТ ВАЛИДАЦИЮ:
- Программа должна выводить данные на экран в соответствии с условием.
Пытался реализовать и так, второй вариант реализации(также рабочая) :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLDecoder;
import java.util.LinkedHashMap;
import java.util.Map;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) {
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
URL url = null;
Map<String, String> query_pairs = new LinkedHashMap<String, String>();
try {
url = new URL (reader.readLine());
String query = url.getQuery();
String[] pairs = query.split("&");
for (String pair : pairs) {
int idx = pair.indexOf("=");
if (pair.contains("=")) {
query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
}
else {
query_pairs.put(pair, null);
}
}
String keyString = null;
Double valueDouble = 0.0;
for (Map.Entry<String, String> entry: query_pairs.entrySet()) {
if(keyString == null) {
keyString = entry.getKey();
}
else{
keyString = keyString + " " + entry.getKey();
}
if (entry.getKey().equals("obj")){
try {
valueDouble = Double.parseDouble(entry.getValue());
}
catch (Exception e){
}
}
}
if (keyString.contains("obj")){
alert(keyString);
alert(valueDouble);
}
else{
alert(keyString);
}
}
catch (IOException exc){
}
}
public static void alert(double value) {
System.out.println("double: " + value);
}
public static void alert(String value) {
System.out.println(value); // System.out.println("String: " + value); - по таску отображения String там отсутствует!!!
}
}
Что сделать, чтоб приняло решение? Нужен совет...так как в Idea все отображается как нужно!package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLDecoder;
import java.util.LinkedHashMap;
import java.util.Map;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) {
//add your code here
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
URL url = null;
Map<String, String> query_pairs = new LinkedHashMap<String, String>();
try {
url = new URL (reader.readLine());
String query = url.getQuery();
String[] pairs = query.split("&");
for (String pair : pairs) {
int idx = pair.indexOf("=");
if (pair.contains("=")) {
query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
}
else {
query_pairs.put(pair, null);
}
}
for (Map.Entry<String, String> entry: query_pairs.entrySet()) {
alert(entry.getKey());
}
System.out.println();
try{
alert(Double.parseDouble(query_pairs.get("obj")));
}
catch (Exception ex){
}
}
catch (IOException exc){
}
}
public static void alert(double value) {
System.out.print("double: " + value);
}
public static void alert(String value) {
System.out.print(value + " ");
}
}