华为OD机试HJ46 截取字符串Java编程解答

描述

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

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

输入描述:

1.输入待截取的字符串

2.输入一个正整数k,代表截取的长度

输出描述:

截取后的字符串

示例1

输入:

abABCcDEF
6

复制输出:

abABCc

复制

示例2

输入:

bdxPKBhih
6

复制输出:

bdxPKB

答案1

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        int k = in.nextInt();
        for(int i=0;i<k;i++){
            System.out.print(input.charAt(i));
        }
    }
}

详解1

思路较为简单,截取前k个字符一个个的输出即可charAt()方法应用详解见华为OD机试HJ1字符串最后一个单词的长度Java编程解答-CSDN博客

答案2:substring() 方法截取

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 读取待截取的字符串
        String str = scanner.nextLine();
        
        // 读取截取的长度
        int k = scanner.nextInt();
        
        // 截取字符串的前 k 个字符并输出
        String result = str.substring(0, Math.min(k, str.length()));
        System.out.println(result);
    }
}

详解2

substring() 方法

substring() 方法是 Java 字符串类 String 提供的一个方法,用于获取字符串的子串,即从原始字符串中截取指定位置的一部分字符。

用法:

public class Main {
    public static void main(String[] args) {
        String str = "Hello, World!";
        
        // 从索引位置 0 到索引位置 5(不包括索引位置 5)截取子串
        String substring1 = str.substring(0, 5);
        System.out.println(substring1); // 输出:Hello
        
        // 从索引位置 7 开始截取到字符串末尾的子串
        String substring2 = str.substring(7);
        System.out.println(substring2); // 输出:World!
    }
}

输出:

Hello
World!

解释:

  • substring() 方法接受一个或两个参数,用于指定截取的起始索引和结束索引。
  • 如果只提供一个参数,则截取从指定索引位置开始到字符串末尾的子串。
  • 截取的子串不包括结束索引位置处的字符,即 [startIndex, endIndex) 的范围。
  • 索引位置从 0 开始计数,负数索引表示从字符串末尾开始计数。
  • 在给定的示例中,substring1 截取了索引位置从 0 到 4 的子串,而 substring2 截取了索引位置从 7 到字符串末尾的子串。

Java知识不熟练?欢迎移步Java基础知识速成笔记“超实用”学完就去实战!(一)-CSDN博客 

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多宝气泡水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值