【华为OD题库-075】拼接URL-Java

题目

题目描述:

给定一个url前缀和url后缀,通过,分割。需要将其连接为一个完整的url。

如果前缀结尾和后缀开头都没有/,需要自动补上/连接符

如果前缀结尾和后缀开头都为/,需要自动去重

约束:不用考虑前后缀URL不合法情况
输入描述:

url前缀(一个长度小于100的字符串)

url后缀(一个长度小于100的字符串)
输出描述:

拼接后的url
示例1:
输入

/acm,/bb
输出

/acm/bb
示例2:
输入

/abc/,/bcd
输出

/abc/bcd
示例3:
输入

/acd,bef
输出

/acd/bef
示例4:
输入

,
输出

/

思路

字符串处理题目,送分题。根据示例4来看,前后缀可能为空。

比如以下两组示例:

/test/, ==》应该输出/test

,hi ==>应该输出/hi

上面两组数据,在经过str.split(",")后,第一个数据分割后的数组arr只有1个长度,而第二个分割后有两个长度,所以取前缀时可以直接取arr0,取后缀时则需要根据数组长度判断。

在拼接字符串时,只需要将前缀末尾和后缀开始的/均去掉,然后使用/将前后缀拼接在一起即可

考虑前后缀可能为空的情况,前缀为空无影响,后缀为空,则输出前缀即可(末尾不再加/)

题解

java 复制代码
package hwod;

import java.util.Scanner;

public class ConcactUrl {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] arrs = sc.nextLine().split(",");
        System.out.println(concatUrl(arrs));

    }

    private static String concatUrl(String[] arrs) {
        if (arrs.length == 0) return "/";
        String prefix = arrs[0];
        String suffix = arrs.length > 1 ? arrs[1] : "";
        if (prefix.length()!=0&&prefix.charAt(prefix.length() - 1) == '/') prefix = prefix.substring(0, prefix.length() - 1);
        if (suffix.length()!=0&&suffix.charAt(0) == '/') suffix = suffix.substring(1);
        if(suffix.isEmpty()) return prefix;
        return prefix + "/" + suffix;
    }
}

推荐

如果你对本系列的其他题目感兴趣,可以参考华为OD机试真题及题解(JAVA),查看当前专栏更新的所有题目。

相关推荐
weixin_448771726 分钟前
使用Aspose给PDF添加水印
java·pdf
\光辉岁月/7 分钟前
7.system类
java·system类
SL_staff21 分钟前
BI落地失败的3个技术断点:从数据接入、自助分析到服务闭环的工程实践
java·数据分析·数据可视化
大风起兮云飞扬丶24 分钟前
Java——线程池
java·开发语言
文丑颜不良啊1 小时前
LeetCode276~300题目解析
java·leetcode
Vegetable_xu1 小时前
Spring Bean 循环依赖:为什么有时能过、有时启动就挂
java·spring·mybatis
avi91112 小时前
【AI教人】在Inspector显示所有Delegate-Odin Inspector之三
java·前端·算法·delegate·inspector·editor扩展·unity editor
青春不朽5122 小时前
Python 的 list append 为什么是均摊 O(1)?拆开过度分配那张表,看容量翻倍背后的暗账
java·python·list
小羊没烦恼!3 小时前
.NET 11 Runtime Async 详解
java·运维·开发语言·javascript·python
哇嘎呀3 小时前
RHCSA题目
java·服务器·前端