Java题解 | HJ46 #截取字符串#

截取字符串

https://www.nowcoder.com/practice/a30bbc1a0aca4c27b86dd88868de4a4a

描述

输入一个字符串和一个整数 k ,截取字符串的前k个字符并输出

数据范围:字符串长度满足 1≤n≤10001≤k≤n

输入描述:

1.输入待截取的字符串
2.输入一个正整数k,代表截取的长度

输出描述:截取后的字符串

示例1

输入:
abABCcDEF
6

输出:
abABCc


示例2

输入:
bdxPKBhih
6

输出:
bdxPKB

## 解法

如果是用Java的JDK API来做,就是一行

str.substring(0, k)


但如果是这么简单的话,又要怀疑试题的动机了,是要考验我的智商码?

于是,我不得不将输入的转为字符数组,而后遍历数组取前k,组成字符串输出。

```java
package com.waylau.nowcoder.exam.oj.huawei;

import java.util.Scanner;
/**
 * HJ46 截取字符串.
 * 描述:输入一个字符串和一个整数 k ,截取字符串的前k个字符并输出
 * 数据范围:字符串长度满足  `1≤n≤1000`  , `1≤k≤n`
 * 输入描述:
 * 1.输入待截取的字符串
 * 2.输入一个正整数k,代表截取的长度
 * 输出描述:截取后的字符串
 * 示例1
 * 输入:
 * abABCcDEF
 * 6
 * 输出:
 * abABCc
 * 示例2
 * 输入:
 * bdxPKBhih
 * 6
 * 输出:
 * bdxPKB
 *
 * @author <a href="">Way Lau</a>
 * @since 2022-08-23
 */
public class HJ46InterceptString {

    public static void main(String[] args) {
        // 输入
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        int k = Integer.valueOf(in.nextLine());

        // 转为字符数组
        char[] arr = str.toCharArray();

        // 取数组的前k位字符拼接为字符串输出
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < k; i++) {
            sb.append(arr[i]);
        }

        // 输出
        System.out.println(sb.toString());

        // 关闭
        in.close();
    }

}

参考引用

#华为机考#
全部评论

相关推荐

找个工作&nbsp;学历是要卡的&nbsp;要求是高的&nbsp;技能不足是真的&nbsp;实习经验是0的&nbsp;简历无处可写是事实的&nbsp;钱不好赚是真的&nbsp;想躺平又不敢躺&nbsp;也不甘心躺&nbsp;怕自己的灵感和才华被掩埋甚至从未被自己发现&nbsp;又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
4
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务