题目
题目描述:
给定一个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),查看当前专栏更新的所有题目。