Java
 Computer >> コンピューター >  >> プログラミング >> Java

いくつかのサブ文字列に分割するJavaプログラム


この記事では、いくつかのサブ文字列に分割する方法を理解します。文字列は、1つ以上の文字を含み、二重引用符(“”)で囲まれたデータ型です。文字列の一部またはサブセットはサブ文字列と呼ばれます。

以下は同じのデモンストレーションです-

入力がであると仮定します −

Input string: JVM

必要な出力は

The substring list printed as an ArrayList :
[J, JV, JVM, V, VM, M]

The sub-strings after splitting is:
(1) "J"
(2) "JV"
(3) "JVM"
(4) "V"
(5) "VM"
(6) "M"

アルゴリズム

Step 1 - START
Step 2 - Declare a string namely input_string, an array list namely string_list.
Step 3 - Define the values.
Step 4 - Iterate through the length of the string using two nested loops, and add every character from every string to another list. This is the result to be displayed on console.
Step 5 - To print this substring as ArrayList, initialize a counter, and iterate through the result and increment the counter after every iteration. This gives number of substrings in the string.
Step 6 - Display the result
Step 7 - Stop

例1

ここでは、「main」関数の下ですべての操作をバインドします。

import java.io.*;
import java.util.ArrayList;
public class SubString {
   public static void main(String[] args) {
      System.out.println("Required packages have been imported");
      String input_string = "JVM";
      System.out.println("The string is defined as: " +input_string);
      int i, j;
      int string_length = input_string.length();
      ArrayList<String> string_list = new ArrayList<String>();
      for (i = 0; i < string_length; i++) {
         for (j = i + 1; j <= string_length; j++) {
            string_list.add(input_string.substring(i, j));
         }
      }
      ArrayList<String> result = string_list;
      System.out.println( "\nThe substring list printed as an ArrayList : ");
      System.out.println(result);
      System.out.println( "\nThe sub-strings after splitting is: ");
      int count = 1;
      for (String it : result) {
         System.out.println("(" + count + ") \"" + it + "\"");
         count++;
      }
   }
}

出力

Required packages have been imported
The string is defined as: JVM

The substring list printed as an ArrayList :
[J, JV, JVM, V, VM, M]

The sub-strings after splitting is:
(1) "J"
(2) "JV"
(3) "JVM"
(4) "V"
(5) "VM"
(6) "M"

例2

ここでは、操作をオブジェクト指向プログラミングを示す関数にカプセル化します。

import java.io.*;
import java.util.ArrayList;
public class SubString {
   public static ArrayList<String> split_string(String input_string) {
      int i, j;
      int string_length = input_string.length();
      ArrayList<String> string_list = new ArrayList<String>();
      for (i = 0; i < string_length; i++) {
         for (j = i + 1; j <= string_length; j++) {
            string_list.add(input_string.substring(i, j));
         }
      }
      return string_list;
   }
   public static void main(String[] args) {
      System.out.println("Required packages have been imported");
      String input_string = "JVM";
      System.out.println("The string is defined as: " +input_string);
      ArrayList<String> string_list = SubString.split_string(input_string);
      System.out.println( "\nThe substring list printed as an ArrayList : ");
      System.out.println(string_list);
      System.out.println( "\nThe sub-strings after splitting is: ");
      int count = 1;
      for (String it : string_list) {
         System.out.println("(" + count + ") \"" + it + "\"");
         count++;
      }
   }
}

出力

Required packages have been imported
The string is defined as: JVM

The substring list printed as an ArrayList :
[J, JV, JVM, V, VM, M]

The sub-strings after splitting is:
(1) "J"
(2) "JV"
(3) "JVM"
(4) "V"
(5) "VM"
(6) "M"

  1. 文字列をPythonで一意のサブ文字列の最大数に分割することを見つけるプログラム

    文字列sがあるとすると、指定された文字列を分割できる一意のサブ文字列の最大数を見つける必要があります。文字列を空でないサブ文字列の任意のリストに分割して、サブ文字列の連結が元の文字列を形成するようにすることができます。ただし、すべてが同じになるように部分文字列を分割する必要があります。 したがって、入力がs =pqpqrrrの場合、[p、q、pq、r、rr]のように分割できるため、出力は5になります。 [p、q、p、q、r、rr]のように分割すると、ここではpとqが複数回存在するため、無効になります。 これを解決するには、次の手順に従います- res:=1つの要素のみを含むリスト0 関

  2. Pythonで文字列を分割する方法の数を見つけるためのプログラム

    バイナリ文字列sがあるとすると、sを3つの空でない文字列s1、s2、s3に分割して(s1連結s2連結s3 =s)することができます。文字数「1」がs1、s2、およびs3で同じになるように、sを分割できる方法の数を見つける必要があります。答えは非常に大きい可能性があるため、答えmod 10 ^ 9+7を返します。 したがって、入力がs =11101011の場合、出力は2になります。これは、「11 | 1010|11」と「11|101|011」のように分割できるためです。 これを解決するには、次の手順に従います。 count:=sの1の数を数える m:=10 ^ 9 + 7 ans: