-3

文字列を分割しましたが、各分割部分を独自の文字列にするにはどうすればよいですか? 例: 分割された部分の 1 つは次の220532ようになります。私はかなり探し回っていますが、私を助けるものは何も見つかりませんでした.おそらく私は間違った場所を探しています.

私のコードのセクション(分割コード):

public void actionPerformed(ActionEvent e) {
    String delim = (", ");
    StringTokenizer st = new StringTokenizer("225433,1690,29040474 267067,77,1529611     
    237690,78,1788405 273749,79,1854885 274972,79,1952641 268946,71,867189 239419,64,420791 
    238742,81,2319417 159198,85,3530900 138028,90,5475735 208678,78,1696957 174967,79,1869053 
    290115,65,469553 212042,65,486662 359576,48,84972 201637,70,790755 240043,55,167763 
    282705,52,132888 244545,56,198147 261757,56,201357 281466,39,34650 239398,57,214448 
    100420,76,1347559 250011,51,115880 144608,72,912505 166813,67,577751 -1,1,-1 -1,-1 -1,-1 
    -1,-1 -1,-1 -1,-1 73106,748 -1,-1 -1,-1 92834,659 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 
    -1,-1", delim);

    while (st.hasMoreTokens()) {
        System.out.println(st.nextToken());
     }

}
}); 
4

4 に答える 4

2

次のような文字列があるとします

String number="1,2,3,4,5";
String num[]=number.split(","); //This statement split the number using delimiter ","
               //means num[0]="1",num[1]="2" and so on..
于 2013-08-21T17:12:11.630 に答える
1

List各ピースを( Java Collectionsフレームワークの一部)に保存できます...

public void actionPerformed(ActionEvent e) {
    String delim = ", ";
    StringTokenizer st = new StringTokenizer("225433,1690,29040474 267067,77,1529611 237690,78,1788405 273749,79,1854885 274972,79,1952641 268946,71,867189 239419,64,420791 238742,81,2319417 159198,85,3530900 138028,90,5475735 208678,78,1696957 174967,79,1869053 290115,65,469553 212042,65,486662 359576,48,84972 201637,70,790755 240043,55,167763 282705,52,132888 244545,56,198147 261757,56,201357 281466,39,34650 239398,57,214448 100420,76,1347559 250011,51,115880 144608,72,912505 166813,67,577751 -1,1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 73106,748 -1,-1 -1,-1 92834,659 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1 -1,-1",
                    delim);
    List<String> parts = new ArrayList<String>();
    while (st.hasMoreTokens()) {
        parts.add(st.nextToken());
    }
    for (String s : parts) {
        // Do something with s
    }
}

または、次のようなものを使用できますString.split

public void actionPerformed(ActionEvent e) {
    String delim = ", ";
    String input = "225433, ....";
    String[] parts = input.split(delim);
    for (String s : parts) {
        // Do something with s
    }
}
于 2013-08-21T17:10:30.260 に答える
1

これを使って:

String[] splittedText = new String("your text").split(",\\s+|\\s+|,");

スペースがある場合、またはコマとスペースがある場合は分割されます。それはあなたの数のために働くでしょう。

例:

String[] splittedText = new String("225433,1690,29040474 267067,77,1529611     237690,78,1788405 273749,79,1854885 274972").split(",\\s+|\\s+|,");
        for(String s : splittedText)
            System.out.println(s);
于 2013-08-21T18:08:16.517 に答える
1

文字列のリストを作成し、各トークンをそれに追加します。

ArrayList<String> myStrings = new ArrayList<String>();
while(st.hasMoreTokens())
{
   myStrings.add(st.nextToken());
}

myStrings長い文字列から分割した個々の文字列がすべて含まれるようになりました。

編集:次に、それらにアクセスするには、for-each ループ (または標準の for ループ) を使用できます。

for(String number : myStrings)
{
    System.out.println(number);
    //sample output: "225433"
    //               "1690"
}

また

for(i = 0; i < myStrings.size(); i++)
{
    System.out.println("Number " + i + " is: " + myStrings.get(i));
    //example output: "Number 0 is: 225433"
    //                "Number 1 is: 1690"
}

前者はより簡潔ですが、作業している要素のインデックスを知りたい場合は、後者が必要です。

最初の要素だけが必要な場合は、myStrings.get(0)

于 2013-08-21T17:10:56.417 に答える