約 443,104 件
https://w.atwiki.jp/atachi/pages/23.html
string型 [#s46bd48d] 文字の操作方法一覧 [#p3fecd9a] 文字列の等価比較 [#vd94d25e] 正規表現 対象がスカラー値の場合の書式指定記法 [#i429a806] 対象が日時の場合の書式指定記法 [#u2a0f385] string型 C#では文字列の扱いはすべてstring型で扱う。 stringはSystem Stringクラスなので、文字列に関する多くの操作はStringクラスが実装している。 内部はユニコードである。 文字の操作方法一覧 操作 呼び出しサンプル 説明 文字列の長さ s.Length Lengthプロパティを使用する。 "文字".Length 拡張メソッドによってリテラルからStringクラスのメソッドを呼び出せる。 結合 "abc" + "ABC" 文字列結合演算子 大文字化 s.ToUpper() 小文字化 s.ToLower() 文字分割 s.split( / ) 戻り値はstring型の配列 部分文字列 s.Substring(5,10) 指定した位置の文字を取得。例の場合、5文字目から10文字分の文字列を返す。 トリム s.Trim() s.TrimStart() 文字列の先頭にある空白をトリミングする。 s.TrimEnd() 文字列の末尾にある空白をトリミングする。 等価比較 s == "文字列" s.Equals("文字列") 激しく非推奨 (下記参照) 不等価比較 s != "文字列" 大小比較 先頭比較 s.StartWith("My") 文字列が先頭の文字にマッチするか。 末尾比較 s.EndWith("Test") 文字列が最後の文字にマッチするか。 空文字判定 文字検索 s.IndexOf("Program") 文字列にマッチした最初の位置を返す 置き換え s.Replace("Before","After") 置換処理後の文字列を返す 左寄せ(右埋め) s.PadLeft(10) 指定した文字数になるように空白で右側(左側)を埋めた文字列を返す 右寄せ(左埋め) s.PadRight(10) 文字列の等価比較 文字列はstring型(または、ボックス化によりString型)であるため、等価比較を行うにあたって2つの方法が存在する。 ==演算子による方法 Object.Equals()による方法 string型はイミュータブルなので、==演算子を使用できる。 Object.Equals()でも等価比較が可能だが、ボックス化によるパフォーマンス低下とタイプセーフではないという実装上のデメリットが生じる。 特に、タイプセーフでないために対象がObject型ならば何でもEquals()に与えることができてしまうため、文字列以外の型を与えた場合に必ずしも等価でないケースが存在してしまう。 int i = 0; string s = "0"; Console.WriteLine( s == i ); // コンパイルエラー(異なる型を==演算子で比較できない) Console.WriteLine( s == i.ToString() ); // 明示的にiを文字列へ。 結果はTrue Console.WriteLine( s.Equals(i) ); // False Javaとは動作が決定的に異なるので、Java経験者は注意が必要です。 正規表現 System.Text.RegularExpressions.Regexを使用する。 static void Main() { string s = @" This is a test program. you can download it from the following page. http //www.xxx.yyy/bin/test.exe If you have any questions about this, please contact us by sending e-mail to the following address. support@xxx.yyy "; // メールアドレス抽出 Regex email = new Regex(@"\w*@[\w\.]*"); Console.Write("{0}\n", email.Match(s).Value); 正規表現が複数にマッチした場合は次のようにする。 Match m = null; for(m = reg.Match(s);m.Success;m = m.NextMatch()) { Console.Write("{0}\n", m.Value); } MSDN 正規表現言語要素 対象がスカラー値の場合の書式指定記法 置き換える文字と引数の順番が対応している。{0}は1番目の引数で置き換える。 書式 説明 指定例 表示例 d 数値を表示 {0 d} 1234 dn 任意の桁数で表示。桁が足りない場合は「0」で埋まる {0 d4} 0123 c 数値を通貨書式で表示 {0 c} \5,120 n 「,」区切り {0 n} 5,120 x 16進数で表示 {0 x} 4e0c g 小数点表示 {0 g} 0.1575 f 小数点部の桁固定で表示デフォルトでは2桁 {0 f} 0.15 fn 小数点部の桁固定数を指定 {0 f5} 178.12466 e 指数形式で表示 {0 e} 1.575e-002 p パーセンテージで表示 {0 p} 15% 数値 桁指定。整数部と小数部は「.」で区切る。 {0 000.000} 057.120 0 数値の表示位置。例の書式で「123456789」という値を与えた場合は表示例のようになる。 {0 (000)-000-0000} (012)-345-6789 対象が日時の場合の書式指定記法 書式対象のデータ型がDateTimeの場合、書式指定の意味合いが異なるものがあります。 年の指定 y 年。2桁表記。0~99 yy 年。常に2桁での出力。00~99 yyy 年。常に3桁での出力。 yyyy 年。常に4桁での出力。 yyyyy 年。常に5桁での出力。 月の指定 M 月。1~12 MM 月。常に2桁での出力。01~12 MMM 月の省略名で出力 MMMM 日付の指定 d 日付。1~31 dd 日付。常に2桁での出力。01~31 ddd dddd 時間の指定 h 12時間表記。0~12 hh 12時間表記。常に2桁での出力。00~12 H 24時間表記。0~23 HH 24時間表記。常に2桁での出力。00~23 tt 午前・午後の表示。日本語ロケールの場合は「午前/午後」と表示される。英語の場合は「AM/PM」となる。 分の指定 m 分。0~59 mm 分。常に2桁での出力。00~59 秒の指定 s 秒。0~59 ss 秒。常に2桁での出力。00~59
https://w.atwiki.jp/mopsprogramming/pages/69.html
文字列オブジェクトの一部を切り落としたり、追加的に文字列を挿入したりするメソッドを、全部ではありませんが、紹介します。正しくはMops 4.0.0 Manual Part III(Class Reference)をご覧ください(今も有効です)。 文字列の一部切り落とし -- DELETE 文字列を切り落とすメソッドはDELETE です。このメソッドは、文字列のアクティブな部分、つまり、POSからLIMまでを切り落とします。サイズは適切に修正され、POSとLIMは削除された部分に集中します。つまり、削除後はアクティブ部分の長さは0になります。 \ This is the |content of the |String Object. ^pos ^lim DELETE MyString \ This is the ||String Object. DELETE メソッドは、マニュアルではString+クラスのメソッドとなっていますが、PowerMopsではStringクラスでも使えます。 追加 -- ADD , $ADD , + 現在の文字列に、内容を追加するメソッドもあります。まず。ADD 。 ADD ( addr len -- ) このメソッドは、パラメタとして与えられた文字列を、メッセージを受ける文字列のposやlimの値にかかわりなく、その文字列の最後にぶら下げます。ただ、追加後は、posもlimも文字列の最後に設定されます。 \ |This string is | ^pos ^lim " too short." ADD MyString \ This string is too short.|| $ADD メソッドは、働きはADD と同じですが、パラメタが文字列オブジェクトのアドレスになります。 AdditionStr $ADD MyString \ $ADD ( ^str -- ) 追加されるのは、パラメタ文字列のアクティブ部分だけです。 メソッド+ ( c -- )は、「一文字だけ"ADD "する」ということができます。 a + MyString \ 末尾に文字aを追加。pos, limは文末へ。 挿入 -- INSERT , $INSERT , CHINSERT 文字列オブジェクトの途中に文字列を挿入する諸ワードです。すべて、POSの位置に挿入します。挿入後は、POSもLIMも、挿入された文字数分、繰り下がります。 \ MyString = 文字列オブジェクトにはいわゆるASCII文字|が格納できま|す。 " だけではなく、かな漢字を含め任意のデータ" INSERT MyString \ MyString = 文字列オブジェクトにはいわゆるASCII文字だけではなく、かな漢字を含め任意のデータ|が格納できま|す。 各メソッドの違いは、ADD 等の場合と同じようなパラメターのちがいです INSERT ( addr len -- ) $INSERT ( ^str -- ) CHINSERT ( c -- ) なお、マニュアルではCHINSERT (文字挿入)はString+クラスのメソッドとされていますが、PowerMopsではStringクラスでも使えます。 「追加」「挿入」の補足 追加と挿入は、まだメモリー領域(マスターポインタ)を取得していない文字列インスタンスに対しても実施することができます(つまり、予め"New "しておく必要がない)。結果は、PUT などに類似しますが、ともにPOSとLIMの位置が末尾となる点がPUT との違いです。 関連項目: 文字列オブジェクト Stringクラスの基本メソッド Stringの諸データとアクティブ部分 文字列の廃棄 トッページへ 目次へ
https://w.atwiki.jp/hosiyomi2/pages/12.html
文字定数「 」 「 A 」のように「 」で囲んだものを文字定数という。 データ的には 文字列「""」 「"A"」のように「""」で囲んだものを文字列という。 上記の場合だと、[A][\0]というようにデータが格納されている。 \0はヌル文字で、入力したデータの最後に必ず入っている。 配列的にいうと、 char mojiretu[] = "A"; の場合、mojiretu[0]にAが、[1]に\0が入っている。 データ的には配列扱いになるので、変数宣言時には配列型にしないと一致せずにコンパイルエラーが出る。 たとえ「"1"」でも、文字列扱いになるのでint型(配列も含めて)の変数に代入することはできない。
https://w.atwiki.jp/nadebook/pages/44.html
【選択文字列】メンバ変数 部品のテキストで、選択している部分の文字列を表します。 選択部分の文字列。 値の設定 部品に選択文字列を設定することはできません。 値の取得 部品の選択文字列を取得する。 Sは(部品名)の選択文字列。 取得できる値 文字列 ***** サンプル ***** エディタAとはエディタ。 ボタンBとはボタン。 ボタンBのクリックした時は 「カーソル位置は、{エディタAの行},{エディタAの列}」と表示。 「選択位置は、{エディタAの選択位置}」と表示。 「選択文字数は、{エディタAの選択文字数}」と表示。 「選択文字列は、{エディタAの選択文字列}」と表示。 ***** ここまで *****
https://w.atwiki.jp/m1000/pages/87.html
<<標準コマンド 文字列操作 LEFT$:文字列から左側の文字を取り出す MID$:文字列から内側の文字を取り出す RIGHT$:文字列から右側の文字を取り出す REPT$:文字列を繰り返す UPPER$:文字列を大文字に変換する LOWER$:文字列を小文字に変換する LEN:文字列の長さを取得する ASC:文字コードを求める LOC:文字列の中を検索する CHR$:文字コードから文字に変換する OPL掲示板
https://w.atwiki.jp/nadebook/pages/142.html
【CD文字列】メンバ変数 「COPYDATA受けた時」イベントで設定される値です。COPYDATAで受け渡されたデータを表します。 値の設定 部品にCD文字列を設定する。 (部品)のCD文字列は「テスト」 (部品)のCD文字列は100。 ※システム側で自動的に値が設定されるので、ユーザーが任意に設定すべきではありません。 値の取得 部品のCD文字列を取得する。 Iは(部品)のCD文字列。 取得できる値 文字列 数値 ***** サンプル ***** 母艦について W=320。H=240。タイトルは「送信側」 支店グリッドとはグリッド。 支店グリッドについて アイテムは「ID,文字列{~}1,横浜支店{~}2,静岡支店{~}3,草津支店」 クリックした時は 選択結果は支店グリッドのテキストの「"」を空に置換して「,」で区切ったもの。 結果フォームのハンドルに選択結果[1]を選択結果[0]でCOPYDATA詳細送信。 結果フォームとはフォーム。 結果フォームについて W=320。H=240。タイトルは「受信側」 COPYDATA受けた時は 結果フォームの10,10へ「受信ID {結果フォームのCD_ID}」を文字表示。 結果フォームの10,30へ「受信文字列 {結果フォームのCD文字列}」を文字表示。 結果フォームを描画処理反映。 結果フォームを表示。 ***** ここまで *****
https://w.atwiki.jp/twhs/pages/12.html
// ■■■サンプル1■■■ デフォルトのトークンで文字列を区切る #include "stdafx.h" #include iostream #include string #include boost/tokenizer.hpp using namespace std; int _tmain(int argc, _TCHAR* argv[]) { #if 1 string str("hello world"); boost tokenizer tokenizer(str); #else boost tokenizer tokenizer(string("hello world")); #endif boost tokenizer iterator iter = tokenizer.begin(); while (iter != tokenizer.end()) { cout *iter endl; ++iter; } return 0; } // ■■■サンプル2■■■ トークンを指定して文字列を区切る #include "stdafx.h" #include iostream #include string #include boost/tokenizer.hpp using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string str("1,2,3,4"); boost char_separator char delimiter(","); boost tokenizer boost char_separator char tokenizer(str, delimiter); boost tokenizer boost char_separator char iterator iter = tokenizer.begin(); while (iter != tokenizer.end()) { cout *iter endl; ++iter; } return 0; } // ■■■サンプル3■■■ 長さを指定して文字列を区切る #include "stdafx.h" #include iostream #include string #include boost/tokenizer.hpp using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string str("20080101"); const int tokenArray[] = {4, 2, 2}; boost offset_separator offsetSeperator(tokenArray, tokenArray + 3); boost tokenizer boost offset_separator tokenizer(str, offsetSeperator); boost tokenizer boost offset_separator iterator iter = tokenizer.begin(); while (iter != tokenizer.end()) { cout *iter endl; ++iter; } return 0; } ■■■参照■■■ http //boost.cppll.jp/HEAD/libs/tokenizer/char_separator.htm http //www.kmonos.net/alang/boost/classes/format.html
https://w.atwiki.jp/funf/pages/29.html
文字列について 半角と全角をチェックする。 public static void main(String[] args){ String str = "NetBeanでHello Worldをしてみる"; byte[] bytes = null; try{ bytes = str.getBytes("SJIS"); }catch (Exception e){ e.printStackTrace(); } if(str.length() != bytes.length){ System.out.println( bytes.length - str.length()); } } このソースコードはサンプルです。SJISに変換できない場合、止まる可能性があります。 JAVAはUTF-8なので半角も全角も2バイトである。しかし、一旦SJISに変換(EUC-JPでもいいんだろうけど)すると、半角は1バイト、全角は2バイトになるので、全角の分だけ文字列長よりバイト配列の長さのほうが大きくなる。 ここで、バイト配列内の全角と半角を判別するには、文字コードを見ればよい。半角は(多分)ASCIIコードと同じなので、0x7F以下になるはずである。つまり、0x80以上を見つかれば、その次のバイトと合わせて1文字の全角であると判断できる。
https://w.atwiki.jp/nenohitohatiue/pages/1204.html
|__| | ̄ ̄|_ □ . | ̄ ̄| ┌┐ |__| | _|__| └┘ ロ/ j | | ┌┐ |_| |\ | ̄ ̄| l ` ´ └┘□ | | .___ 、 □ | ̄| \| / ; ; ;| ; ; ; ; ;\ \ .  ̄ ロ | ; ; ; ;| ; ; ; ; ; ; ; ;ヽ、 、_ /| .} ; ; ; ;} ; ; ; ; ; ; ; ; ; ; ;} ,{ ゝ── ' |/ □ /| ロ □ | ; ; ; ;| ; ; ; ; ; ; ; ; ; ; ; ;| ハ 、 ロ . |/ . |_ ;_ ;_ | ;_ ;_ ;_ ;_ ;_ ;_ ;|ヽ / '、 `ヽ □ ・ |__|______| ', / ` ロ ロ □ ./ / .i  ̄`v \・ 。 . ロ i / / / i ∨ \ __ノ// ./ / / i i _V ヽ >イ// / / i i i {_i/ ヽ // / .,′ i i i/ 7 | | } lハ/!_ハ_>/ | | .| .,、 , ´ ̄7| l .| | l! \_ __ ,_/ | | | ヽヽ ._ l´ ,  ̄ ̄ .| | ヽ、 \\__ |__ .| l ヘ、 ヽ 丿` ̄ ̄ ̄ ̄ ̄.  ̄| l / } } ,i . .| l . / l三三三三三三l◇===================================== カード名 . ..: 電子分岐の文字列 恐怖 [怪奇]≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ レアリティ...: C≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ カードスキル : 山札から対価1の異なる銘を持つ札を無作為に2枚手札に加える≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ステータス. . : 対価 1 SP:2 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ フレーバー .: その銘は、遺り行く名前。=====================================◇電子分岐の文字列/恐怖/R/Cost 1/SP 2/山札から対価1の異なる銘を持つ札を無作為に2枚手札に加える/[怪奇]/[][]C + 口上 紡ぐ言葉、繋ぐ言葉。無数に分かたれ、無数に繋ぐ。―― 顕現、[電子分岐の文字列]。byギンコ紡ぐ言葉、繋ぐ言葉。無数に分かたれ、無数に響く。―― 顕現、電子分岐の文字列ッ!byキルヲ【カウントレス・ブレット】奏で紡ぎて、投じる言葉。無間に響きて、無限へ至る。―― 顕現、電子分岐の文字列ッ!by月山秀九郎―― 紡ぐ言葉、繋ぐ言葉。深き水底にすら届き、幾重に連なる舞台を照らしだせッ!リアライズ 顕現ッ! ―― [電子分岐の文字列]!byキルヲ【悲劇に幕を、少女に夜明けを】紡ぐ言葉、繋ぐ言葉。無価値に無意味、無数無量のそれらの価値を誰が決める? リアライズ―― 顕現。[電子分岐の文字列]。byキルヲ【惡を欲し善を為す絵空の悪魔】―― 謳う言葉、響く言葉。果てへ在ろうと、それでも届け。リアライズ! [電子分岐の文字列]!by穗群編紡ぐ言葉、繋ぐ言葉。忘れじの道、誰何の道別れ、さぁさぁこれより語りましょうや。リアライズ 顕現!―― [電子分岐の文字列]ッ!byキルヲ【消えざる愚者を語るは黄金】
https://w.atwiki.jp/pignon/pages/7.html
含まれていれば true を返します = 調べられる文字列.include?(調べる文字列)