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

相关推荐
智码看视界1 分钟前
老梁聊全栈系列:(阶段一)架构思维与全局观
java·javascript·架构
黎宇幻生3 分钟前
Java全栈学习笔记33
java·笔记·学习
BillKu3 小时前
推荐 Eclipse Temurin 的 OpenJDK
java·ide·eclipse
Morri33 小时前
[Java恶补day53] 45. 跳跃游戏Ⅱ
java·算法·leetcode
悟能不能悟3 小时前
eclipse怎么把项目设为web
java·eclipse
乂爻yiyao3 小时前
java 代理模式实现
java·开发语言·代理模式
2301_770373733 小时前
Java集合
java·开发语言
哈喽姥爷3 小时前
Spring Boot---自动配置原理和自定义Starter
java·spring boot·后端·自定义starter·自动配置原理
老华带你飞5 小时前
考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
java·vue.js·spring boot·考研·小程序·毕设·考研论坛平台小程序
CHEN5_025 小时前
leetcode-hot100 11.盛水最多容器
java·算法·leetcode