【华为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个长度,而第二个分割后有两个长度,所以取前缀时可以直接取arr[0],取后缀时则需要根据数组长度判断。

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

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

题解

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),查看当前专栏更新的所有题目。

相关推荐
毕设源码-邱学长6 小时前
【开题答辩全过程】以 基于Java的学校住宿管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
兑生8 小时前
【灵神题单·贪心】1481. 不同整数的最少数目 | 频率排序贪心 | Java
java·开发语言
daidaidaiyu8 小时前
一文学习 Spring 声明式事务源码全流程总结
java·spring
零雲9 小时前
java面试:了解抽象类与接口么?讲一讲它们的区别
java·开发语言·面试
左左右右左右摇晃12 小时前
Java并发——synchronized锁
java·开发语言
sxlishaobin12 小时前
Java I/O 模型详解:BIO、NIO、AIO
java·开发语言·nio
彭于晏Yan13 小时前
Spring AI(二):入门使用
java·spring boot·spring·ai
有一个好名字13 小时前
vibe codeing 开发流程
java
兑生13 小时前
【灵神题单·贪心】3745. 三元素表达式的最大值 | 排序贪心 | Java
java·开发语言
polaris063013 小时前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat