Есть ли пустой URI?

Я работаю над подпрограммой, которая анализирует URI. Среди очевидных случаев есть случай пустой строки. Является ли пустая строка допустимым вводом? Каким будет конечный URI пустой строки?

3 ответа

Пустая строка не может быть URI. Общий синтаксис URI указывает, что по крайней мере scheme компонент, сопровождаемый : с последующим hier-part компонент (который может быть пустым) должен присутствовать.

Но относительная ссылка на URI может быть пустой. Синтаксис относительных ссылок указывает, что по крайней мере relative-part компонент должен присутствовать, но он может быть пустым (path-empty).

Пустая относительная ссылка на URI - это ссылка на тот же документ (выделено жирным шрифтом):

Наиболее частыми примерами ссылок на один и тот же документ являются относительные ссылки, которые пусты или содержат только разделитель знака числа ("#"), за которым следует идентификатор фрагмента.

Вы можете разобрать пустойStringкUriбез исключений, но его поля будут нулевыми или их недопустимыми значениями по умолчанию.

      val myUri = Uri.parse("")

myUri.hostявляетсяnullиmyUri.portявляется-1

Поскольку корень URI является ограниченным набором, мы знаем, что у него нет действительного корня. Поэтому он ничего не идентифицирует и является недействительным в качестве идентификатора. Но это может иметь значение в вашем контексте, так как tere не является конкретным стандартом для URI.

Другие вопросы по тегам