在 Java 中拆分逗號分隔字串的三種方法

Sarwan Soomro 2023年10月12日
  1. 在 Java 中使用 Indexof()Substring() 方法拆分逗號分隔的字串
  2. 在 Java 中使用字串列表和拆分方法拆分逗號分隔的字串
  3. 在 Java 中使用陣列列表和拆分方法以逗號分隔字串值
在 Java 中拆分逗號分隔字串的三種方法

Java string 類充滿了豐富的資源,你可以使用這些資源建立基本程式來解決複雜的問題陳述。本教程將展示一些很酷的方法來從逗號分隔的起點或你可能在字串值集中使用的任何除法分割字串。

此外,我們將使用 IndexOf(); 我們的第一個程式的方法並將 Split() 與 Java 的動態陣列和字串類整合。

在 Java 中使用 Indexof()Substring() 方法拆分逗號分隔的字串

檢視這個字串:String java = "Java, is, a, fun, programming, language!";。此示例以逗號分隔,但可以是其他任何字元。

注意
我們可以直接使用更簡單的方法來完成同樣的工作,因為 Java 在它的 string 類中有很多保留函式。

但是,這樣做不會幫助你作為新手理解構建邏輯。以下核心概念在中級階段為你修訂。

瞭解 Java 中的 indexof() 方法

它返回使用者指定字串中指定值第一次出現的位置。

引數:

String String demoStr = 我,我,一個,字串 假設起始索引設定為 0indexOf()"I" 搜尋。
fromIndex 一個 int 值,指定開始搜尋的索引位置。 它會讓你玩索引。
char 包含特定字元的 int 值。 可選的

返回:一個 int 值表示該值在字串中的第一次出現索引,如果它從未出現,則為 -1

Java 中 substring() 方法的重要性

它返回一個字串,該字串是該字串的子字串。它從給定點開始,以指定點的字元結束。

我們希望你已經成功地理解了這些方法的文件。現在讓我們執行我們的第一個程式。

程式碼:

// Example 1
public class UseIndexofAndSubString {
  public static void main(String[] args) {
    // Specified string to search comma from and then split it in a substring
    String java = "Java, is, a, fun, programming, language!";
    String comma = ","; // To search ',' from the first occurrence of the specified string
    // Our starting index is 0 since we do not want to miss any occurrence in the
    // given string value while the end index is also initialized
    int start = 0, end;
    // Now the indexOf will find the specified character which in this case is a
    // comma (,)
    // Note: The second parameter (start) determines that the method starts from the
    // beginning, otherwise it will
    // Basically, we will be able to locate the occurrence of (comma) from where we
    // want it to be split
    end = java.indexOf(comma, start);
    // If the loop does not find (comma)
    // We already mentioned the return type of indexOf in case if the given char
    // never occurred, right? That is what the loop searches for!
    while (end != -1) {
      //// Substring will give us each occurrence until the loop is unable to find
      //// comma
      String split = java.substring(start, end);
      System.out.println(split); // print each sub string from the given string
      // Then add 1 to the end index of the first occurrence (search more until the
      // condition is set false)
      start = end + 1;
      end = java.indexOf(comma, start);
    }
    // Since there is no comma after the last index of the string (language!), the
    // loop could not find the end index; thus, it never printed the last word!
    // We will get the last instance of the given string using substring and pass
    // start position (Starts from L and ends at the !)
    String split = java.substring(start);
    // Brave, you got it all right!
    System.out.println(split);
  }
}

輸出:

Java
is
a
fun
programming
language!

假設你想將 comma 更改為美元 $ 符號。

所有你需要做的:

String java = "Using$ another$ Character$ to$ split$ from!";
String sepFrom = "$"; // To search from the specified string

輸出:

Using
another
Character
to
split
from!

在 Java 中使用字串列表和拆分方法拆分逗號分隔的字串

當我們討論初級理解的重要性時,我們談到了陣列。

下面的程式很簡單。你不需要找到開始和結束位置,也不需要執行 while 迴圈並比較返回值是否為-1。

Java 的 stringarrays 類用四行乾淨的程式碼總結了所有內容。同時,你需要了解兩種必要的方法,這將有助於你一路走來。

Java 中的 Arrays.aslist()) 函式

引數:

  1. 陣列元素值的類別。
  2. 使用者指定的陣列用於儲存列表。
  3. 它為你提供了你定義的指定陣列的列表檢視。

語法:

List<String> ArraySting = Arrays.asList(IwillBeSplit.split(","));

Java 中的 Split() 函式

它使用我們作為使用者指定為正規表示式的 split 方法中的兩個引數和 0 的限制引數。

因此,它不包括輸出集中尾隨的空字串。

  1. 引數:作為分隔符的正規表示式。
  2. 返回: 將 regex 表示式 的該字串分開生成的字串陣列。

程式碼:

// Example 3 using Lists' String with Split Method to Split String From a Given demarcation
import java.util.Arrays;
import java.util.List;

public class UseStingListWithSplitMthd {
  public static void main(String[] args) {
    String IwillBeSplit = "There,are,seven,days,!&#^*,in,a,weak";
    // List is an interface in Java
    List<String> ArraySting = Arrays.asList(IwillBeSplit.split(","));
    // Using for each loop
    ArraySting.forEach(System.out::println);
  }
}

輸出:

There
are
seven
days
!&#^*
in
a
weak

假設字串是:

String IwillBeSplit = "You%replaced%the%comma%with%a%percentage";
List<String> ArraySting = Arrays.asList(IwillBeSplit.split("%"));

我們將得到:

輸出:

You
replaced
the
comma
with
a
percentage

在 Java 中使用陣列列表和拆分方法以逗號分隔字串值

以下程式碼塊不應使你感到困惑。因為,你已經熟悉 Arrays.asList());split()

然而,這裡的不同之處在於解決方案的方法,它使用 ArrayList<String> 而不僅僅是 List<String>

那麼區別是什麼呢?

這並不難。list 是一個介面,而 ArrayList 是一個 Java 集合類。

前者提供一個靜態陣列,而後者生成一個動態陣列來儲存元素。

程式碼:

// Example 2 using ArrayLists and split method
import java.util.ArrayList;
import java.util.Arrays;

public class ArrayListSplitMethod {
  public static void main(String[] args) {
    String ALstr = "So,many,ways,to,separate,a,string,from,a,specified,position";

    ArrayList<String> Spliter = new ArrayList<>(Arrays.asList(ALstr.split(",")));
    Spliter.forEach(System.out::println);
  }
}

輸出:

So
many
ways
to
separate
a
string
from
a
specified
position
作者: Sarwan Soomro
Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

相關文章 - Java String