約 391,563 件
https://w.atwiki.jp/pignon/pages/9.html
変更後の文字列を返します = 文字列.lstrip !付きは文字列を直接書き変える 取り除く空白がなかったときは nil を返します = 文字列.lstrip!
https://w.atwiki.jp/chapati4it/pages/81.html
C言語 色々な文字列の比較サンプル 関数名 説明 strcmp 文字列の比較 stricmp 大文字小文字を無視しての文字列の比較 strcasecmp stricmpと同様 strncmp 文字数を指定した文字列比較。文字列の先頭一致、末尾一致の判定もできます。 strchr 文字列に指定charが含まれるか判定 strstr 文字列に指定文字列が含まれるか判定 サンプルダウンロード #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (strcmp.c) サンプルソース #include stdio.h #include stdlib.h #include string.h int main(void) { char *a = "aaa"; char *aaabbbcccdddcccbbbaaa = "aaabbbcccdddcccbbbaaa"; // strcmp 文字列同士を比較する if (strcmp(a, "aaa") == 0) { puts("変数aと aaa は同じ文字列です"); } else { puts("変数aと aaa は違う文字列です"); } if (strcmp(a, "AaA") == 0) { puts("変数aと AaA は同じ文字列です"); } else { puts("変数aと AaA は違う文字列です"); } // stricmp 大文字小文字を無視して文字列を比較する // strcasecmp関数も同様 if (stricmp(a, "AaA") == 0) { puts("変数aと AaA は大文字小文字の違いを無視すれば同じ文字列です"); } else { puts("変数aと AaA は大文字小文字の違いを無視しても違う文字列です"); } // strncmp 指定文字数だけ文字列を比較する。先頭、末尾の比較にも使えます // 文字列の先頭が一致するか調べる if (strncmp(a, "aaabbbcccddd", strlen(a)) == 0) { puts("変数aと aaabbbcccddd の先頭は同じ文字列です"); } else { puts("変数aと aaabbbcccddd の先頭は違う文字列です"); } // 文字列の末尾が一致するか調べる size_t lena = strlen(a); size_t len = strlen(aaabbbcccdddcccbbbaaa); if (strncmp(a, aaabbbcccdddcccbbbaaa + len - lena, strlen(a)) == 0) { puts("変数aと aaabbbcccdddcccbbbaaa の末尾は同じ文字列です"); } else { puts("変数aと aaabbbcccdddcccbbbaaa の末尾は違う文字列です"); } // strstr 文字列に文字列が含まれるか調べる if (strstr(aaabbbcccdddcccbbbaaa, "bbb") != NULL ) { puts("変数aaabbbcccdddcccbbbaaaには bbb が含まれます"); } else { puts("変数aaabbbcccdddcccbbbaaaには bbb が含まれません"); } if (strstr(aaabbbcccdddcccbbbaaa, "eee") != NULL ) { puts("変数aaabbbcccdddcccbbbaaaには eee が含まれます"); } else { puts("変数aaabbbcccdddcccbbbaaaには eee が含まれません"); } // strchr 文字列が一文字だけ含まれるか調べる // index関数も同様 if (strchr(aaabbbcccdddcccbbbaaa, d ) != NULL ) { puts("変数aaabbbcccdddcccbbbaaaには d が含まれます"); } else { puts("変数aaabbbcccdddcccbbbaaaには d が含まれません"); } if (strchr(aaabbbcccdddcccbbbaaa, e ) != NULL ) { puts("変数aaabbbcccdddcccbbbaaaには e が含まれます"); } else { puts("変数aaabbbcccdddcccbbbaaaには e が含まれません"); } return EXIT_SUCCESS; } 実行結果 変数aと aaa は同じ文字列です 変数aと AaA は違う文字列です 変数aと AaA は大文字小文字の違いを無視すれば同じ文字列です 変数aと aaabbbcccddd の先頭は同じ文字列です 変数aと aaabbbcccdddcccbbbaaa の末尾は同じ文字列です 変数aaabbbcccdddcccbbbaaaには bbb が含まれます 変数aaabbbcccdddcccbbbaaaには eee が含まれません 変数aaabbbcccdddcccbbbaaaには d が含まれます 変数aaabbbcccdddcccbbbaaaには e が含まれません
https://w.atwiki.jp/nanakoso/pages/23.html
ここ→配列操作の比較表に触発されて、Rubyの文字列メソッドの対応物をJavaとHaskellで探してみました。 Javaの文字列処理がそれほど高機能じゃないのはある程度想定内だったけど、Haskellもなかなか1対1の対応物がない。 lines,unlinesとか逆にあまったけど。 そもそもHaskellのソレって文字列処理用っていうよりほとんど汎用リスト操作関数なわけで。 Haskellって 「汎用性の高い関数を用意したから自由に組み合わせて使ってね」 って思想だと思うわけで。 カリー化された関数の強力な応用力とあいまってこれはこれで一つの便利さの方向性だとはおもう。 ただこれの欠点は 「もっとエレガントで短い書き方があるんじゃないか?」 って不安がいつまでも付きまとう事。 (しかもタチの悪い事にパズルみたいで楽しすぎる!) 自分の修行が足りなくてイディオムを知らないせいもあるけどね。 (これ調べてるうちに、HaskellでLhaにもいろいろ直したいところが!) Javaのパッケージ名やHaskellのモジュール名を明示するため、必要なものは完全名で書きました。 (実際ほとんどの場合ソースの頭でimport文を使って短くかけるようにします。) Ruby (String) Java Haskell s = abc String s = abc s = abc s = x + y s = x + y s = x ++ y s == x s.equals(x) s == x s % [x, y] sprintf(s, x, y) String.format(s, x, y)//J2SE5.0より Text.Printf.printf s x y [x, y, z].join(s) foldr1 (¥a b- a ++ s ++ b) [x,y,z] s.capitalize s.capitalize! s.casecmp(x) // s.equalsIgnoreCase(x) // ってのがあるけど同値判定だけだし、、 s.center(x) s.chomp s.chomp! s.chop init s s.chop! s.clear // sbはStringBuffer型 sb.setLength(0); s.concat(x) // sbはStringBuffer型 sb.append(x); s.count(x) length filter (flip elem x) s s.crypt(x) s.delete(x) filter (flip notElem x) s s.delete!(x) s.downcase s.toLowerCase() map Data.Char.toLower s s.downcase! s.each_byte {|x| ... } for(int i=0; i s.length(); i++){ char x = s.charAt(i); ... } mapM_ (¥x- ...) s -- 副作用を含む処理を順次起動するって意味では mapM_で正解だけど、...のところはモナドじゃないといけない。 実際そこまでは要らなくて集計値とか計算結果のリストが欲しいだけで foldシリーズやただのmapで十分ってことも多いと思われる。 //J2SE5.0より for(char x s.toCharArray()){ ... } s.each_line {|x| ... } String[] xs = s.split( ¥n ,-1); for(int i=0 ; i xs.length; i++){ String x = xs[i]; ... } mapM_ (¥x- ...) $ lines s //J2SE5.0より for(String x s.split( ¥n ,-1)){ ... } s.empty? s.length() == 0 null s s.end_with?(x) s.endsWith(x) Data.List.isSuffixOf x s s.gsub(x, y) s.replaceAll(x, y) s.gsub!(x, y) s.hex s.to_i(16) Integer.parseInt(s,16) s.include?(x) s.indexOf(x) = 0 s.index(x) s.indexOf(x) s.insert(i, x) // sbはStringBuffer型 sb.insert(i,x); s.length s.size s.length() length s s.ljust(x) s.lstrip dropWhile Data.Char.isSpace s s.lstrip! s.match(x) s.matches(x) x.match(s) java.util.regex.Pattern.matches(x, s) s.next s.succ s.next! s.succ! s.oct s.to_i(8) Integer.parseInt(s,8) s.partition(x) Data.List.partition x s s.replace(x) s.reverse reverse s s.reverse! // sbはStringBuffer型 sb.reverse(); s.rindex(x) s.lastIndexOf(x) s.rjust(x) s.rpartition(x) s.rstrip s.rstrip! s.scan(x) { ... } TODO s[i] s.slice(i) s.charAt(i) s !! i s[i..-1] s.slice(i..-1) s.substring(i) drop i s s[i, l] s.slice(i, l) s.substring(i,i+l) take l $ drop i s s[i..j] s.slice(i..j) s.substring(i,j+1) take (l-i+1) $ drop i s s[i...j] s.slice(i...j) s.substring(i,j) take (l-i) $ drop i s s.split(x) s.split(x) s.start_with?(x)*4 s.startsWith(x) Data.List.isPrefixOf x s s.strip s.trim() s.strip! s.sub(x, y) s.sub!(x, y) s.swapcase s.to_f Float.parseFloat(s) read s --この式が使用される場所の型によって適宜、変換関数の実装が(コンパイル時に)選択される(多相型) s.to_i Integer.parseInt(s) read s --同上 s.tr!(x, y) s.tr_s!(x, y) s.unpack(x) s.upcase s.toUpperCase() map Data.Char.toUpper s s.upcase! Regexp.escape(s) Regexp.quote(s)
https://w.atwiki.jp/eneces/pages/2.html
テーブルは 縦棒で くぎります テーブルは 縦棒で くぎります テーブルは 縦棒で くぎります テーブルは 縦棒で くぎります テーブルは 縦棒で くぎります
https://w.atwiki.jp/nino-add-up/pages/104.html
軸に文字列を入れる set(gca, xlim ,[0 3], xtick ,[1 2 3], xticklabel ,{ hoge1 , hoge2 , hoge3 }) set関数を用いる gcaで今見ているaxisの設定を宣言,xlimで最小・最大を指定,xtickでラベルを付ける位置の指定,xticklabelでどのようなラベルを付けるのかを指定する 例 mesh(peaks) set(gca, xlim ,[0 50], xtick ,[0 25 50], xticklabel ,{ hoge1 , hoge2 , hoge3 }) set(gca, ylim ,[0 50], ytick ,[0 25 50], yticklabel ,{ ho1 , ho2 , ho3 }) set(gca, zlim ,[-10 10], ztick ,[-10 0 10], zticklabel ,{ hogege1 , hogege2 , hogege3 }) [PR] メールフォーム
https://w.atwiki.jp/javafx/pages/34.html
JavaFXでの文字列の連結について JavaとJavaFXでは文字列の連結が異なります。 単純な文字列の連結 Javaの場合 System.out.println("Hello,"+"World"); JavaFXの場合 System.out.println("Hello,".concat("World")); これら違いからわかるようにJavaFXでは、Javaでは文字列の連結演算子であった「+」が使えなくなっています。 文字列と数式の連結 JavaFXでは文字列の連結演算子が使えないので、文字列と数式の連結も異なってきます。 System.out.println("1/2={1/2}"); このように「{ }」で囲った範囲を数式として処理します。つまりこの結果は、 1/2=0.5 となります。 trackback
https://w.atwiki.jp/perltips/pages/20.html
以下のサブルーチンを使う sub hex_string($) { my $string = shift; my @words = split(//, $string); my $hex_string = join( , map { sprintf( "%X", ord($_) ) } @words); $hex_string; } 転載元 http //d.hatena.ne.jp/konbuizm/20091002/1254498028 使用例 print hex_string("テスト文字列\n");
https://w.atwiki.jp/cs00/pages/13.html
// 数値を10進数の文字列に変換します。 int ai = 222; double dblA = 123.456; string strB; strB = ai.ToString(); // 222 strB = dblA.ToString("F0"); // 123 strB = dblA.ToString("F2"); // 123.46
https://w.atwiki.jp/abwiki/pages/256.html
Basicで文字列といったら、$マークをくっつけた変数や、String型で定義した変数を利用するんじゃ… おっしゃる通り、以前までのBasicでは文字列といえば、String型変数でした。 しかしこのString型変数、扱いはとても簡単ですが、落とし穴もあります。難しい話になってしまいますが、文字列バッファ用のメモリを確保したり、解放したりする処理を独自に行っているため、Win32API用をはじめとするいくつかの機能はこれらメモリ操作のことを考慮してくれません。String型変数は、独自のプログラム内でのみの利用ならなんの問題もありませんが、Windowsアプリケーションの開発を行っていく上で、どうしても無理が生じる場合があります。 そこで登場するのか、Byte配列の変数。メモリ確保、解放などの処理が必要ないため、比較的単純な構造をしています。こちらもコツさえつかんでしまえば、扱いはとても簡単です。C言語を経験したことがあるかたなら、以下のプログラムが同等のものであるといえば、一発で理解できるでしょう。 Dim a[100-1] As Byte イコール char a[100]; ActiveBasicでは、Win32APIなどを通し、Windowsアプリケーション開発を行う場合は、なるべくByte配列を利用することを推奨します。ここから以下は、Byte配列の変数を利用した文字列操作の方法を紹介します。 Byte配列のデータ構造 Byte配列の文字列は、定義した範囲内の長さを持つ、 NULL終端の非常にシンプルな構造をしています。NULLとは、文字コード0のデータのことを意味します。 通常、配列変数のデータを扱うときは a[0]、a[1] などというように、変数名の後にカッコをつけ、任意の配列要素を指定します。文字列内の任意の文字を扱うときはこの表記方法を用いますが、文字列の先頭ポインタを扱うときは、変数名だけを指定することがあります。少しややこしい話になりますが、以下の2つの意味は同じになります。 a イコール VarPtr(a[0]) 文字列のコピー Dim FilePath[255] As ByteDim path2[255] As Bytelstrcpy(FilePath,"C \My Document\hp\index.html")lstrcpy(path2,FilePath)MessageBox(0,path2,"文字列テスト",MB_OK) 先頭の2行のDim命令で、256バイトずつ(合計512バイト)文字列用のバッファを定義しています。 次に、FilePath配列に、"C \My Document\hp\index.html" という文字列をコピーし、更にそれをpath2配列にコピーしているのがわかります。このように、lstrcpy関数を利用すれば、Byte配列同士、文字列のコピーを行うことができます。 lstrcpy(コピー先のバッファポインタ, コピー元のバッファポインタ) Byte配列に対して、a="ABCDEFG" や、a=a+b などといった演算はできないので、慣れるまでは注意しましょう。 文字列の連結 試しに、馴染みの深いString型変数を利用して文字列連結の操作を行ってみましょう。 Dim a As StringDim b As Stringa="ABCDEFG"b="1234567"a=a+bMessageBox(0,a,"test",MB_OK) これと同じ動作をByte配列を用いて再現すると、以下のようなプログラムに書き換えることができます。 Dim a[255] As ByteDim b[255] As Byte'文字列をセットlstrcpy(a,"ABCDEFG")lstrcpy(b,"1234567")'文字列aに文字列bを連結させるlstrcat(a,b)MessageBox(0,a,"文字列テスト",MB_OK) lstrcatは、文字列連結のための関数であり、以下のようなパラメータを持ちます。 lstrcat(連結先文字列, コピー元文字列) 文字列の消去 任意の個所の文字列を消去するのは、Byte配列の得意分野かもしれません。 Dim a[100] As Byte'文字列をセットlstrcpy(a,"ABCDEFG1234567")'後半の数値部分を削除a[7]=0MessageBox(0,a,"文字列テスト",MB_OK) 上のプログラムのように、消去したい文字列を示す位置に0を入れるだけで実現できます。この0というのは、一般的に、NULL文字と呼ばれるもので、文字列の終端部分を表すときに用いられます。 BytePtr型の変数 BytePtr型変数とは、Byte配列の先頭ポインタを管理する変数のことを指します。先頭ポインタの変更ができる点を除けば、Byte配列と扱い方は変わりません。 Dim FilePath[100] As ByteDim pBuf As BytePtr'文字列をコピーlstrcpy(FilePath,"C \My Document\hp\index.html")'FilePathの先頭ポインタをpBufに格納pBuf=FilePath' ファイル名"index.html"を消去pBuf[17]=0MessageBox(0,pBuf,"文字列テスト",MB_OK)
https://w.atwiki.jp/mekong/pages/56.html
文字列から半角・全角空白を取り除く(外部リンク)