Есть ли пустой 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.