タグ付けされた質問 「string」

文字列はシンボルの有限シーケンスであり、通常はテキストに使用されますが、任意のデータに使用されることもあります。

11
JavaScriptで2つの文字列間の文字列を取得する正規表現
非常によく似た投稿を見つけましたが、ここでは正規表現をまったく取得できません。 他の2つの文字列の間にある文字列を返す正規表現を記述しようとしています。たとえば、「cow」と「milk」の間にある文字列を取得したいとします。 私の牛はいつも牛乳を出しています 戻るだろう 「常に与える」 ここに私が今までつなぎ合わせた表現があります: (?=cow).*(?=milk) ただし、これは文字列「cow always present」を返します。
166 javascript  regex  string 

8
C#で文字列をDateTimeに解析する
私が持っている日付と時刻を 1つのようにフォーマットされた文字列に: "2011-03-21 13:26" //year-month-day hour:minute どうすれば解析できSystem.DateTimeますか? 私は次のような機能を使用するDateTime.Parse()か、DateTime.ParseExact()手動で日付の形式を指定できるようにし、可能な場合。
165 c#  .net  string  parsing  datetime 

18
最速の部分文字列検索アルゴリズムは何ですか?
わかりました、それで私は馬鹿のように聞こえません私は問題/要件をより明確に述べるつもりです: Needle(パターン)とhaystack(検索するテキスト)はどちらもCスタイルのヌル終了文字列です。長さ情報は提供されません。必要に応じて、計算する必要があります。 関数は、最初の一致へのポインタを返すNULLか、一致が見つからない場合に返す必要があります。 失敗した場合は許可されません。これは、非定数(または大きな定数)のストレージ要件を持つアルゴリズムでは、割り当ての失敗に対するフォールバックケースが必要になることを意味します(フォールバックケアのパフォーマンスは、最悪の場合のパフォーマンスに影響します)。 実装はCで行う必要がありますが、コードなしでアルゴリズム(またはそのようなものへのリンク)を適切に記述してもかまいません。 ...そして「最速」とはどういう意味か: 決定論的なO(n)場所n=干し草の長さ。(しかしO(nm)、より堅牢なアルゴリズムと組み合わせて確定的なO(n)結果を得る場合、通常はローリングハッシュなどのアルゴリズムからのアイデアを使用することが可能です)。 if (!needle[1])特に最も一般的なケースである可能性が高い非常に短い針では、素朴なブルートフォースアルゴリズムよりもパフォーマンスが低下する(ある程度測定できる;数クロックなどで問題ない)。(無条件に重い前処理のオーバーヘッドは悪く、針の可能性を犠牲にして病理学的針の線形係数を改善しようとしています。) 任意の針と干し草を考えると、他の広く実装されているアルゴリズムと比較して、同等またはそれ以上のパフォーマンス(検索時間が50%以上長くなります)。 これらの条件は別として、私は「最速」の定義をオープンエンドのままにしておきます。良い答えは、「最速」を提案しているアプローチを検討する理由を説明する必要があります。 私の現在の実装は、glibcのTwo-Wayの実装よりも(入力に応じて)約10%遅く、8倍速く実行されます。 更新:現在の最適なアルゴリズムは次のとおりです。 長さが1の針には、を使用しますstrchr。 長さが2〜4の針の場合、マシンワードを使用して、次のように2〜4バイトを一度に比較します。16ビットまたは32ビットの整数に針をビットシフトでプリロードし、各反復で干し草の山から古いバイトアウト/新しいバイトを循環させます。 。干し草の各バイトは1回だけ読み取られ、0(文字列の終わり)に対するチェックと1つの16ビットまたは32ビットの比較が行われます。 長さが4より大きい針の場合は、ウィンドウの最後のバイトにのみ適用される不良なシフトテーブル(Boyer-Mooreなど)を使用した双方向アルゴリズムを使用します。1 kbテーブルを初期化するオーバーヘッド(多くの中程度の長さの針の正味の損失になる)を回避するために、シフトテーブルのどのエントリが初期化されるかを示すビット配列(32バイト)を保持します。未設定のビットは、針に表示されることのないバイト値に対応します。針の全長シフトが可能です。 私の頭に残っている大きな質問は次のとおりです。 悪いシフトテーブルをより有効に活用する方法はありますか?Boyer-Mooreは、逆方向(右から左)にスキャンすることでそれを最大限に活用しますが、双方向には左から右へのスキャンが必要です。 一般的なケース(メモリ不足や2次のパフォーマンス条件はない)で見つかった実行可能な候補アルゴリズムは、順序付きアルファベットでの双方向および文字列マッチングの2つだけです。しかし、異なるアルゴリズムが最適である、簡単に検出できるケースはありますか?確かに、O(m)(m針の長さである)空間アルゴリズムの多くは、m<100そのために使用できます。線形時間のみを必要とする可能性がある針の簡単なテストがある場合は、最悪の2次アルゴリズムであるアルゴリズムを使用することもできます。 ボーナスポイント: 針と干し草の両方が整形式のUTF-8であると想定して、パフォーマンスを向上させることができますか?(バイト長が異なる文字では、整形式であることにより、needleとhaystackの間に文字列の整列要件が課せられ、不一致のヘッドバイトが検出されたときに自動的に2-4バイトのシフトが可能になります。最大の接尾辞の計算、適切な接尾辞のシフトなどにより、すでにさまざまなアルゴリズムが提供されていますか?) 注:私はそこにあるほとんどのアルゴリズムをよく知っていますが、実際のパフォーマンスはそうではありません。ここに良い参照がありますので、人々は私にコメント/回答としてアルゴリズムに関する参照を与え続けません:http : //www-igm.univ-mlv.fr/~lecroq/string/index.html
165 c  algorithm  string  substring 

10
?? 空の文字列を結合しますか?
私がますますやっていることは、文字列が空かどうかをチェックすることです( ""またはnullなど)と条件演算子のです。 現在の例: s.SiteNumber.IsNullOrEmpty() ? "No Number" : s.SiteNumber; これは単なる拡張メソッドであり、以下と同等です。 string.IsNullOrEmpty(s.SiteNumber) ? "No Number" : s.SiteNumber; 空であり、nullで??はないため、トリックを実行しません。のstring.IsNullOrEmpty()バージョン??最適なソリューションになります。これを行うにはよりクリーンな方法が必要だと思います(私は願っています!)が、それを見つけるのに途方に暮れています。 .Net 4.0のみであっても、これを行うためのより良い方法を誰かが知っていますか?


10
繰り返される文字で満たされた可変長の文字列を作成する
だから、私の質問はここのJavaフォームで誰かに尋ねられました:Java-指定された長さで特定の文字で満たされた新しいStringインスタンスを作成します。最善の解決策は? 。。。しかし、私はそれに相当するJavaScriptを探しています。 基本的に、各フィールドの「maxlength」属性に基づいて、テキストフィールドに「#」文字を動的に入力します。したがって、入力にhasがmaxlength="3"ある場合、フィールドは「###」で埋められます。 理想的にはJavaのようなものが存在しますStringUtils.repeat("#", 10);が、これまでのところ、私が考えることができる最良のオプションは、最大長に達するまで「#」文字を1つずつループして追加することです。それよりももっと効率的な方法があるという気持ちを揺さぶることはできません。 何か案は? 参考:入力にデフォルト値を設定することはできません。「#」文字はフォーカスをクリアする必要があり、ユーザーが値を入力しなかった場合は、ぼかしで「補充」する必要があるためです。それは私が心配している「補充」のステップです
164 javascript  html  string 



10
C#文字列参照型?
C#の "string"は参照型であることを知っています。これはMSDNにあります。ただし、このコードは次のように機能しません。 class Test { public static void Main() { string test = "before passing"; Console.WriteLine(test); TestI(test); Console.WriteLine(test); } public static void TestI(string test) { test = "after passing"; } } 文字列をパラメーターとして渡し、それが参照型であるため、出力は「受け渡し前」「受け渡し後」になるはずです。2番目の出力ステートメントは、TestIメソッドでテキストが変更されたことを認識します。ただし、「渡される前」「渡される前」が表示されるため、参照ではなく値で渡されているように見えます。文字列は不変であることは理解していますが、ここで何が行われているのかがわかりません。何が欠けていますか?ありがとう。
163 c#  string  reference  types 


13
Haskellで文字列を分割する方法は?
Haskellで文字列を分割する標準的な方法はありますか? linesそしてwordsスペースや改行で分割からの仕事の偉大な、しかし確実に、カンマで分割するための標準的な方法はありますか? Hoogleでは見つかりませんでした。 具体的には、split "," "my,comma,separated,list"戻ってくるところを探しています["my","comma","separated","list"]。
163 string  haskell 

8
istringstream、ostringstream、stringstreamの違いは何ですか?/すべてのケースでstringstreamを使用しないのはなぜですか?
私が使用した場合std::istringstream、std::ostringstreamそしてstd::stringstream、なぜ私は使用しないでくださいstd::stringstreamすべてのシナリオで(任意の実行時のパフォーマンスの問題があります?)。 最後に、これについて何か悪いことはありますか(ストリームをまったく使用する代わりに): std::string stHehe("Hello "); stHehe += "stackoverflow.com"; stHehe += "!";

22
C#で文字列を電話番号としてフォーマットする方法
文字列 "1112224444"があります。これは電話番号です。ファイルに保存する前に111-222-4444としてフォーマットしたいと思います。これはデータレコードにあり、新しいレコードを割り当てずにこれを実行できるようにしたいと思います変数。 私が考えていた: String.Format("{0:###-###-####}", i["MyPhone"].ToString() ); しかし、それでうまくいくようには見えません。 **更新** OK。私はこの解決策に行きました Convert.ToInt64(i["Customer Phone"]).ToString("###-###-#### ####") 内線番号が4桁未満の場合、混乱する。右から数字が入ります。そう 1112224444 333 becomes 11-221-244 3334 何か案は?


12
Enumで文字列を検索し、Enumを返します
列挙があります: public enum MyColours { Red, Green, Blue, Yellow, Fuchsia, Aqua, Orange } そして私は文字列を持っています: string colour = "Red"; 戻れるようにしたい: MyColours.Red から: public MyColours GetColour(string colour) これまでのところ: public MyColours GetColours(string colour) { string[] colours = Enum.GetNames(typeof(MyColours)); int[] values = Enum.GetValues(typeof(MyColours)); int i; for(int i = 0; i < colours.Length; i++) { …
163 c#  string  enumeration 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.