- - PR -
*(アスタリスク)でのsplit
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-16 18:36
String文字列で数式が書かれています。
その数式を、(*,/,+,-)の記号で分割しているのですが、 *(アスタリスク)をsplit することができずに困っています アスタリスクで区切られた文字列の区切り方を 知ってるかたおられましたらよろしくお願いします。 String[] value; value = SetText.split("*"); ではエラーとなります・・・。 | ||||||||
|
投稿日時: 2005-03-16 18:54
こんなのはどうでしょうか
String src = "1*2*3*4*"; java.util.StringTokenizer strTok = new java.util.StringTokenizer(src, "*"); java.util.List tokens = new java.util.ArrayList(); while (strTok.hasMoreTokens()) { tokens.add(strTok.nextToken()); } String[] values = (String[])tokens.toArray(new String[0]); | ||||||||
|
投稿日時: 2005-03-16 19:05
String#splitって、引数は正規表現ですね。
普段何気なく使っていると、デリミタにしたい文字だけ指定(それも正規表現として正しいので動きます)するもんだと思ってしまいますが、そうじゃないわけです。 で、アスタリスクは正規表現では意味のある記号なのでそのままではアスタリスクそのものを意味しません。
という具合にエスケープしてあげればよかったかと思います。 また、この場合例外のメッセージに正規表現のエラーである旨書かれていると思います。エラーメッセージとAPIリファレンスは必ず読むようにしておくと楽になれると思いますよ。 [ メッセージ編集済み 編集者: jack_pma 編集日時 2005-03-16 19:07 ] | ||||||||
|
投稿日時: 2005-03-16 19:15
どうもありがとうございます
あほなこと聞いてすいません。 | ||||||||
|
投稿日時: 2005-03-16 19:15
+(プラス)ではエラーにならないのですか? もう回答が出ているので、詳しくは書きませんが、 プラスもエラーになるはずですよ。
上記のどっちかでやれば、すべて分割ができますよ。 |
1