
文字列から指定した文字でデータを区切る関数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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 【C言語】全角文字の配列を、全角のまま1文字ずつ出力する方法 4 2023/05/09 15:08
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
VBAマクロについて教えてく...
-
クリックさせる
-
ワード内のテキストボックス文...
-
C# 匿名メソッドについて
-
一般的な引数の順序
-
javascriptからjavaを呼び出したい
-
描画した線や画像などを消す方法。
-
localhostで.htmlを表示したい
-
ファイルの解放
-
Javaの条件文なのですが・・・
-
JavaScript で動的に <SELECT>...
-
0歳児の指しゃぶりに関して
-
JVM(Java仮想マシン)の動作原理...
-
別タスクでウインドウを開く
-
XMLのNodeからXPathを生成(逆...
-
Labelコントロールに数字を代入...
-
JavaAPIのパラメータについて
-
タイムスタンプを時間に変換
-
JUnitの仕組みについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
0歳児の指しゃぶりに関して
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
配列のメソッド
-
CALLされていないメソッドを見...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
Application.Wait の参照設定
-
C#.net Define文
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA でExcelを終了したい...
おすすめ情報