mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.4 KiB
53 lines
1.4 KiB
3 months ago
|
## URL Parsing
|
||
|
|
||
|
### Instructions
|
||
|
|
||
|
Create a class `UrlParser` that provides a method to parse and validate URLs using regex. The method should extract and return url components the `protocol`, `domain`, `port`, `path` and `query` parameters. The URL is always correct.
|
||
|
|
||
|
> give back in the map just the existing component.
|
||
|
|
||
|
### Expected Class
|
||
|
|
||
|
```java
|
||
|
public class UrlParser {
|
||
|
public Map<String, String> parseURL(String url) {
|
||
|
// Implementation to parse and validate URLs using regex
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
Here is a possible `ExerciseRunner.java` to test your class:
|
||
|
|
||
|
```java
|
||
|
import java.util.Map;
|
||
|
|
||
|
public class ExerciseRunner {
|
||
|
public static void main(String[] args) {
|
||
|
UrlParser parser = new UrlParser();
|
||
|
|
||
|
// Test case 1
|
||
|
String url1 = "https://www.example.com:8080/path?name=value";
|
||
|
Map<String, String> components1 = parser.parseURL(url1);
|
||
|
System.out.println("Components of URL 1: " + components1);
|
||
|
|
||
|
// Test case 2
|
||
|
String url2 = "http://example.com/";
|
||
|
Map<String, String> components2 = parser.parseURL(url2);
|
||
|
System.out.println("Components of URL 2: " + components2);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Expected Output
|
||
|
|
||
|
```shell
|
||
|
$ javac *.java -d build
|
||
|
$ java -cp build ExerciseRunner
|
||
|
Components of URL 1: {protocol=https, domain=www.example.com, port=8080, path=/path, query=name=value}
|
||
|
Components of URL 2: {protocol=http, domain=example.com, path=/}
|
||
|
$
|
||
|
```
|