Java中打印字符串前K个字符的不同方法


在Java中,字符串是一个类,它存储一系列用双引号括起来的一串字符。这些字符实际上是String类型的对象。“java.lang”包中提供了字符串类。假设我们给定一个字符串和一个正整数'k'。现在,任务是在Java中打印该字符串的前'k'个字符。还要检查给定字符串的长度是否小于k,如果是,则打印原始字符串。

打印字符串前K个字符的Java程序

让我们通过一些例子来理解这个问题:

示例

String st1 = “TutorialsPoint”;
String st2 = “Tutorial”;

假设我们有上述字符串,并且给定的k为9。那么,结果将是:

The first K characters of st1: Tutorials
The first K characters of st2: Tutorial

字符串1的长度大于9,因此我们打印了前9个字符。但是,字符串2的长度小于9,因此我们打印了整个字符串本身。

方法一

  • 创建一个用户自定义方法,以及两个String类型和整数类型的参数。

  • 将给定的字符串转换为字符数组并将其存储在'chs[]'中。

  • 我们知道Java中的字符串是不可变的,因此我们需要创建一个StringBuffer类的对象'new_st',以将字符串的字符存储到字符数组中。

  • 使用if-else块检查字符串的长度。如果它大于k,则将前k个字符添加到字符数组中,否则打印给定的数组。

  • 现在,在main()方法中,声明并初始化字符串和正整数k。然后,使用字符串和k作为参数调用用户自定义方法。

示例

下面的示例演示了如何使用用户自定义方法检索字符串的前K个字符。

import java.util.*;
public class Kstring {
   public static void frstChar(String st, int k) {
      char chs[] = st.toCharArray(); // converting into character array
      StringBuffer new_st = new StringBuffer();
      if(st.length() > k) { // checking the length of string
         for(int i = 0; i < k; i++) {
            new_st.append(chs[i]); // appending characters to new string
         }
         System.out.println("The first K characters are: " + new_st.toString()); // printing the new string
      } else {
         System.out.println("K is greater than given String: " + st);
      }
   }
   public static void main(String args[]) {
      String st1 = "TutorialsPoint";
      String st2 = "Tutorial";
      int k = 9;
      System.out.println("The Original String: " + st1);
      System.out.println("The Original String: " + st2);
      
      // calling the method
      frstChar(st1, k);
      frstChar(st2, k);
   }
}

输出

The Original String: TutorialsPoint
The Original String: Tutorial
The first K characters are: Tutorials
K is greater than given String: Tutorial

方法二

  • 声明并初始化一个字符串和一个正整数'k'。

  • 现在,使用if-else块检查字符串的长度是否大于k。如果它大于k,则使用'substring()'方法打印相同数量的字符串字符,否则打印整个字符串。

  • 内置方法'substring()'接受两个整数类型的参数,并打印指定字符串中参数范围内的字符。

示例

下面的示例演示了如何使用内置方法'substring()'检索字符串的前K个字符。

public class Kstring {
   public static void main(String args[]) {
      String st1 = "TutorialsPoint";
      int k = 9;
      System.out.println("The Original String: " + st1);
      
      if (st1.length() > k) { // checking the length of string
         System.out.println("The first K characters are: " + st1.substring(0, k));
      } else {
         System.out.println("The first K characters are: " + st1);
      }
   }
}

输出

The Original String: TutorialsPoint
The first K characters are: Tutorials

结论

我们从定义字符串和理解Java程序的问题陈述开始这篇文章。稍后,我们讨论了两个示例程序,一个使用用户自定义方法,另一个使用内置方法来打印给定字符串的前K个字符。

更新于:2023年7月20日

164 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.