2017-07-26 6 views
0

私は文字列b = "x + yi"を2つの整数xとyに分割しようとしています。Java文字列パイプ '|'を使用して複数の区切り文字で分割

これは私の元の答えです。 '|'

int x = (int)(new Integer(a.split("\\+|i")[0])); 
int y = (int)(new Integer(a.split("\\+|i")[1])); 

が持つ特別な何かがあります: は、ここで私は、substringメソッドと 'I' の文字末尾の削除:

int Integerpart = (int)(new Integer(b.split("\\+")[0])); 
int Imaginary = (int)(new Integer((b.split("\\+")[1]). 
         substring(0, b.split("\\+")[1].length() - 1))); 

をしかし、私は以下のコードがちょうど同じ働くことがわかりましたか?私は文書やその他の多くの質問を探しましたが、私は答えを見つけることができませんでした。

+3

正規表現では、 ''|'は、を意味します。 –

+0

文字列の使い方や使い方は?分割関数はパラメータStringをとりますが、( "a" | "b")は私のためのStringのようには見えません。 – Sean

+0

splitメソッドは、渡す文字列を正規表現として解釈します。 [java.lang.String](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-) –

答えて

0

デリミタの動作を理解するために、特定のリンクを使用することができます。

How do I use a delimiter in Java Scanner?

別の代替方法

あなたはuseDelimiter(文字列パターン)Scannerクラスのメソッドを使用することができます。 ScannerクラスのuseDelimiter(String pattern)メソッドの使用。基本的には、文字列セミコロン(;)を使用してScannerオブジェクトのコンストラクタで宣言されたStringをトークン化しています。

文字列「Anne Mills/Female/18」には、名前、性別、年齢の3つのトークンがあります。スキャナクラスは、文字列を分割し、コンソールにトークンを出力するために使用されます。

import java.util.Scanner; 

/* 
* This is a java example source code that shows how to use useDelimiter(String pattern) 
* method of Scanner class. We use the string ; as delimiter 
* to use in tokenizing a String input declared in Scanner constructor 
*/ 

public class ScannerUseDelimiterDemo { 

    public static void main(String[] args) { 

     // Initialize Scanner object 
     Scanner scan = new Scanner("Anna Mills/Female/18"); 
     // initialize the string delimiter 
     scan.useDelimiter("/"); 
     // Printing the delimiter used 
     System.out.println("The delimiter use is "+scan.delimiter()); 
     // Printing the tokenized Strings 
     while(scan.hasNext()){ 
      System.out.println(scan.next()); 
     } 
     // closing the scanner stream 
     scan.close(); 

    } 
} 
3

split()メソッドは、分割を制御する正規表現を使用します。 "" [+ i]を試してください。中カッコは文字群(この場合は "+"と "i")をマークします。

しかし、それはあなたがしようとしていることを達成しません。あなたは何か "b = x"、 "y"、 ""で終わるでしょう。正規表現では、検索機能とキャプチャ機能も提供されます。 String.matches(String regex)を見てください。

関連する問題