- 締切済み
splitの使用方法
String.split の使用に関してです。 ファイルから一行づつ読み出して split で切って配列にしたいと考えています。 ファイルの中身は 1|ssm3u|00000| 2|ssm3u|11111| のように「|」区切りになっています。 通常のcsv等、カンマ区切りのファイルは split(","); を使用して問題なくできたのですが、 split("|"); と書くと、 「|」ではなく、1文字ごとに切ってしまいます。 どうすれば「|」ごとに切ることができるのでしょうか? あるいは、私のプログラム記述ミスでしょうか?
- ssm3u
- お礼率70% (42/60)
- Java
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- UKY
- ベストアンサー率50% (604/1207)
記述ミス……ですね。 split メソッドの引数は正規表現である点に注意してください。「|」という記号は、正規表現の中ではorに相当する演算子を表します。「|」そのものを正規表現の中で表すには、前に「\」をつけて「\|」としないといけません。
関連するQ&A
- タブの場合→A = split(B,",")の、split、の書き方
Bに、aaaa,bbbbbb,ccccc、があれば A(1)に、aaaa、が入ります カンマ区切りのデータが切り離されます ところが、カンマ区切りでなく、 タブ区切りの場合はどう記述するのですか タブのアスキーコード(内部コード)は09です Bには aaaa bbbbbb cccccc のように入っています A = split(B,",")のカンマのところはどう記述 するのでしょうか、よろしくお願いします
- ベストアンサー
- オフィス系ソフト
- C# Splitと配列の複合方法
こんにちは、 ”てすと、です。¥四月、寒い。” のような文字列があり これを¥で区切り、さらにカンマで区切って(Splitでここはできたのですが) 結果を下記のように配列に格納したいと思うのですが、どのように記述すればよいでしょうか? 配列(0,0)=”てすと” 配列(0,1)=”です。” 配列(1,0)=”四月” 配列(1,1)=”寒い。” 文字列の内容が定まっていないため配列の要素数が変動してするものでして。
- ベストアンサー
- その他(プログラミング・開発)
- CSVファイル 読み込み後のsplit
loadVarsを使い、CSVファイルを読み込んだ後で、 そのテキストを一度変数に落としてから splitしようとすると、何も返って来ません。 ----- var nText = String(bSuccess_text); gMessageList = nText.split("\r\n"); ←ここ ----- ※bSuccess_text、nText にテキストが来ているのは確認できています。 ※テキストはwindows改行であることを確認しています。 ※splitの値をカンマとか、別の物(1文字のもの)にしてみても同じく何も返って来ません・・。 ※変数に落とさない状態でもダメで、念のためにつけているstring() を外してもダメでした。 どなたかご存知の方がいらっしゃいましたら、よろしくお願いいたします。
- ベストアンサー
- Flash
- 複数の空白のsplitについて
VB.NEtを最近はじめた初心者です。 CSVファイルを読み込んでデータを空白でsplitして 配列に格納しようとしたのですが、 CSVファイルのデータの間にある空白の数が1~3個 と一定ではなかったためうまくsplitできません。 どのように対処すればよいでしょうか。 ご教授願います。
- ベストアンサー
- Visual Basic
- SPLIT関数
環境 VB6.0 CSVデータをカンマで区切ってデータを取得して いるのですが、こういう処理はできるのでしょうか? 例えば データがダブルコーテーションでくるられて いる場合はカンマ(,)を無視するといった ことはできるのでしょうか? DIM CSVDATA AS STRING DIM XWDNDATA() AS STRING CSVDATA = "1,2,"あいう,おえお",25" XWDNData = Split(CSVDATA, ",") XWDNData(0) = "1" XWDNData(1) = "2" XWDNData(2) = ""あいう" XWDNData(3) = "おえお"" XWDNData(4) = "25" XWDNData(2)とXWDNData(3)を一つのデータとしたい こうしたいデータ XWDNData(0) = "1" XWDNData(1) = "2" XWDNData(2) = "あいうおえお" XWDNData(3) = "25"
- ベストアンサー
- Visual Basic
- Excel VBAにてCSVファイルを読みたい
ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。
- ベストアンサー
- その他MS Office製品
- VBでCSVファイルのある行をインポート
VBでCSVのインポートをしたいのです。 CSVファイルの中身で、最初の5行は読みません。そして、カンマ区切りの行の最初の文字が数字である場合だけを読みたいのです。で最後の3行も読みません。 ですので、CSVのデータを読む場合に最初の5行を飛ばすという方法か、カンマ区切りの行の最初の文字が数字の場合だけ読むという方法はありませんでしょうか。 Line Input #intFileNo, strTextLine strTextLine = Replace(strTextLine, """", "") str = Split(strTextLine, ",") こんな感じのコードで考えてます。 お分かりの方いましたらお願いします。
- ベストアンサー
- その他(ITシステム運用・管理)
- Access VBA Split利用方法
お世話になります。 VBAを勉強している最中です。 Accessを利用して、txtファイルをインポート後、テーブルの項目を配列利用して カンマ区切りにしたいのと、Splitを利用して、配列を条件分岐に利用して、テーブルに 書き込みをしたいとおもってます。 おそらく基本的なことで自分で勉強するべきと思うのですが 漠然なイメージしかない状態で、ヒントやこういう方法があるなど 教えていただけますでしょうか 基本的な使い方ですと Private Sub XXX_Click() str = Split("あああ いいい ううう") MsgBox str(1) End Sub 上記の用な利用方法と思いますが、このような使い方ではなく test(0)のような使い方をして、条件分岐で利用したいと おもってます。 イメージとしては、下記のようなことをイメージしてます。 Public Sub Test() Dim test() As String Dim row As String Dim iNum1 As Long, Dim iNum2 As Long DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM data" DoCmd.TransferText acImportFixed, "インポート定義", "data", "d:\data.txt" DoCmd.SetWarnings True iNum1 = 0 iNum2 = 0 Do While xxx If test(0) = 0 Then iNum1 = iNum1 + 1 iNum2 = 1 Else xxxx End If Loop End Sub ここでSplitを利用してどのように指定するのが望ましいのか考えてしまってます。 test = row.Split(" ") を利用する場合、どのように連結(row)させるのかが不明です。 知識不足もあり、説明がわかりづらいと思うのですが、よろしくお願いします。
- ベストアンサー
- Visual Basic
- カンマ区切りでないテキストをcsvへ
カンマ区切りしていないテキストファイルを一気にカンマ区切りしてcsvに変更することはできないのでしょうか?? 元のテキストファイルをワードパッドで開いてカンマ区切りし直して保存し、名前の変更でcsvに変更(拡張子が変更するとファイルが使用できなくなる可能性あり、というエラーは無視)したら読み込めるようにはなります。 しかしカンマ区切りし直すというのは面倒です。
- ベストアンサー
- その他(Windows)
お礼
早速のご回答ありがとうございます。 とりあえず今回は split ではなく、 StringTokenizer を使って解決しました。 次回必要な際は、正規表現まで着目して対応してみます。 ありがとうございました。