目录
- 专栏导读
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、解题思路
- 五、Java算法源码
- 六、效果展示
- 1、输入
- 2、输出
- 3、说明
华为OD机试 2023B卷题库疯狂收录中,刷题点这里
专栏导读
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
一、题目描述
给定一个非空字符串 S,其被 N 个’-‘分隔成 N+1 的子串,给定正整数 K,要求除第一个子串外,其余的串每 K 个用’-‘分隔,并将小写字母转换为大写。
二、输入描述
正整数 K 和‘-’分割的字符串。
如:
2
25G3C-abc-d
三、输出描述
转换后的字符串。
四、解题思路
给定一个非空字符串 S,其被 N 个’-‘分隔成 N+1 的子串,给定正整数 K,要求除第一个子串外,其余的串每 K 个用’-‘分隔,并将小写字母转换为大写。
五、Java算法源码
package com.guor.od;
import java.util.*;
public class OdTest01 {
/**
* 秘钥格式化
* <p>
* 给定一个非空字符串 S,其被 N 个’-‘分隔成 N+1 的子串,
* 给定正整数 K,要求除第一个子串外,其余的串每 K 个用’-‘分隔,并将小写字母转换为大写。
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 给定一个非空字符串 S
String S = scanner.nextLine();
// 给定正整数 K
int K = Integer.parseInt(scanner.nextLine());
String[] arr = S.split("-");
StringBuilder builder = new StringBuilder();
for (int i = 1; i < arr.length; i++) {
// 将小写字母转换为大写
builder.append(arr[i].toUpperCase());
}
// 转换后的字符串
StringBuilder transferBuilder = new StringBuilder();
transferBuilder.append(arr[0]);
for (int i = 0; i < builder.length(); i++) {
// 每 K 个用’-‘分隔
if (i % K == 0) {
transferBuilder.append("-");
}
transferBuilder.append(builder.charAt(i));
}
System.out.println(transferBuilder);
}
}
六、效果展示
1、输入
nezha-study-java
3
2、输出
nezha-STU-DYJ-AVA
3、说明
🏆下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】
🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。