文字列から指定した文字でデータを区切る関数strtokがC言語にはある
これに相当するC#の関数は何か
例えばCでは以下のように書く。
chardata1[]= " 123 , 456 Yamada " ;
char*token ;
strtok( data, " ," ) ; /* スペースとカンマを区切りに文字列を抽出 */
token = strtok( str, " ." );
printf(" token chat = %s\n", token ) ;
while ( token != NULL ) {
token = strtok( NULL," ." );
if ( token != NULL ) printf(" token chat = %s\n", token ) ;
}
これに相当するc#のSplit関数を使用すると
不要な空白を取り出しているようである
知っている方がおりましたら、教えて下さい。
No.1ベストアンサー
- 回答日時:
strtokの第二引数に同じ値を与え続けるのであれば,StringのSplitメソッドがほぼ同じでしょう。
MSDN: String.Split メソッド (Char[]) (System)
http://msdn.microsoft.com/ja-jp/library/b873y76a …
細かく動作をあわせるなら,
s.Split(' ', ',').Where(v => v != "").ToArray()
のように,空の要素を排除しないといけませんが。
例示のように初回と二回目で異なる値を与えるのであれば,正規表現に頼る事になると思います。
MSDN: Regex クラス (System.Text.RegularExpressions)
http://msdn.microsoft.com/ja-jp/library/system.t …
ただ,例示の場合であればStrnig.IndexOfAnyとString.Substringを使って分割した方が正規表現を考えるより楽だと思います。
MSDN: String.IndexOfAny メソッド (Char[]) (System)
http://msdn.microsoft.com/ja-jp/library/11w09h50 …
MSDN: String.Substring メソッド (System)
http://msdn.microsoft.com/ja-jp/library/system.s …
回答をいただき、ありがおうございます。
C言語でscanfに対応する関数はJAVAとC#では何かということを考えてました。
処理内容は
1.1行分読み込んで
2.区切り文字で分解して
3.変数に変換する
ということになった。
JAVAではStringTokenizerを使えばよいとわかりました。
C#でSplitを使用すると、空行が入ることで、質問したわけです。
空行を除いて文字列を抽出できればと考えたわけです。
Splitの第2パラメタに「StringSplitOptions.RemoveEmptyEntries」を指定すればいいと分かりました。
これで問題解決です。
回答をいただき、ありがおうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
タブコントロールの問題 (VB)
-
ListViewにて行追加
-
Application.Wait の参照設定
-
エクセルのvbaによる書式のコピ...
-
Windowsプログラムから音を出す...
-
Range クラスのAutoFitプロパテ...
-
c#でVBのcall的役割を果たすコ...
-
エクセルVBAで、ユーザーフォー...
-
アクセスVBA 時間を止める
-
エクセルVBAにおけるON TIMEメ...
-
引数、戻り値がどこに渡される...
-
Visual Basic 2005 でのデリゲ...
-
描画した線や画像などを消す方法。
-
MVCモデルでのサーブレットのや...
-
DataGridViewでセルクリックイ...
-
ACCESSのPrintoutメソッドについて
-
VBAでSaveAs使用し、指定してい...
-
変数名の付け方
-
「タイプ初期化子が例外をスロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
Labelコントロールに数字を代入...
-
エクセルVBAにおけるON TIMEメ...
-
JSPで<SELECT>の中にDBから持っ...
-
ウィンドウを最前面にできません
-
final修飾子を使っているのに、...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
onClickで関数呼出し後に、結果...
-
Application.Wait の参照設定
-
VBA コピーが出来ません…!
-
VBPをダブルクリックするとたま...
-
javascriptからjavaを呼び出したい
-
Refreshメソッドの使い方
-
配列のメソッド
-
エクセルのマクロでプリンタを...
-
boolean型のフィールドとゲッタ...
-
C#で右からnカラム目に文字を挿...
おすすめ情報