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

相关推荐
快乐肚皮40 分钟前
堆排序详解:从理论到实践
java·算法·排序算法·堆排序
hqxstudying44 分钟前
Kafka
java·spring cloud·kafka
悟能不能悟1 小时前
Logback-spring.xml 配置屏蔽特定路径的日志
xml·java·spring
小伍_Five1 小时前
spark数据处理练习题番外篇【下】
java·大数据·spark·scala
qqxhb1 小时前
零基础设计模式——行为型模式 - 中介者模式
java·设计模式·go·中介者模式
forestsea1 小时前
Maven 多仓库治理与发布策略深度实践
java·maven
陌殇殇1 小时前
Hadoop 003 — JAVA操作MapReduce入门案例
java·hadoop·mapreduce
march of Time2 小时前
图数据库介绍及应用,go和Java使用图数据库
java·数据库·golang
CodeCraft Studio2 小时前
PDF处理控件Aspose.PDF教程: 在 Java 中编辑 PDF 页面大小
java·pdf·aspose·aspose.pdf
异常君2 小时前
Redis String 类型的底层实现与性能优化
java·redis·性能优化