はてなキーワード: Stringとは
「QAに聞いたんですけど、あのバグ、やっぱまだ直ってませんでした。だから、狙う時は“ここ”をお願いします」
「五代……」
「いやもちろん、万が一、俺が“究極の闇をもたらす存在”になっちゃったらですけどね」
「……。こんな寄り道はさせたくなかった」
「え?」
「……」
「ここまで君を付き合わせてしまって……」
「ありがとうございました」
「……?」
「五代……」
「じゃあ、見てて下さい。俺の――変身」
>> java.lang.NoSuchMethodException: com.laurens.Main.main([Ljava.lang.String;)
at java.lang.Class.getMethod(Class.java:1786)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:125)
https://en.m.wikipedia.org/wiki/Lisztomania
Admirers of Liszt would swarm over him, fighting over his handkerchiefs and gloves.[3] Fans would wear his portrait on brooches and cameos.[2][4] Women would try to get locks of his hair, and whenever he broke a piano string, admirers would try to obtain it in order to make a bracelet.[4]
リストの信奉者は彼の周りを取り囲んで、ハンカチや手袋を巡って争った。ファンたちは彼の肖像画の入ったブローチやカメオを身につけていた。女性たちは彼の髪束を手に入れようとし、彼のピアノの弦が切れた時にはそれを入手してブレスレットにしようとした。
誇張されてるっぽいけど、「リストさんの捨てたタバコの吸い殻を拾ってアクセサリに加工してた人もいる」ってエピソードも書いてある。
どもども。
わたしは「なにか作ってみろ」系の言説にはまったく同意しません。
わたし自身、会社に3ヶ月間みっちり導入教育をしてもらい(COBOL85とPL/I。時代がわかる……)、基本的なアルゴリズム(コントロールブレーク、マッチング、マスタ-トランザクション、ソート、マージ、etc.いよいよ時代がわかる……)の演習を(給料をもらいながら)やって、その後もプログラムとつかず離れずでフラフラと生きてきました。
こういう経験は新卒カードがあるから有効なもので、では1から始めるとしたら……、というときに、プログラミングスクール(専門学校)というのは悪くない選択肢ではないかと思います。が、行ったことないので正直わかりません。
実際自分が1から始めるという立場になったら、まったくオロオロして元増田さんのように世のなか(の気にいらないヤツら)に呪詛を吐いて満足するだけだったと思います(当然ながらそれをいくらやってもプログラミングは上達しません)。
話をプログラミングだけに限っていえば、一番大事なのはやりかたじゃなくて動機だろうと思います。
「なにか作ってみよう」というのは、なにか作ってみようと思ってない人にはまったく心に響かないでしょう。
動機ドリブンで「なにか作ってみた」人といえば思いだすのは、MikuMikuDanceの樋口優さん(ミクを簡単に踊らせたい!)とhinadanの若宮正子さん(高齢者にも遊べるゲームが欲しい!)でしょうか。
ただかれらはわたしから見れば(モチベーションを維持しそれを行動に移す)天才で、あんまり参考にならないのも確かです。
あと、元増田さんの動機は「プログラミングを生業にしたい」ということなので、野良プログラマでは履歴書上でのアピール力が弱いかも、と思います。
ビジネスで使われるアルゴリズムにはそれなりのルールがあります。安全な(バグの出にくい)コードの書きかた、「車輪の再発明」はぜず、枯れた(将棋で言えば定跡のような)アルゴリズムを使う、ほかの人に使ってもらえるための工夫(可読性の向上など)、etc.です。
「なにか作ってみよう」を繰りかえしても、そういった作法的なものが身につくかどうか、それは才能に関わってくる問題だと思います。才能だのみの手法を推奨するのは無責任だと思いますね。
また、たとえば「例をコピーして解析する」というのもある意味有効なプログラミング学習法ですが、「下手に習うと下手が伝染る」ともいいます。どれがお手本として優れているか、それを見る目はある程度ビジネス用途のプログラムに関わっていないと持てないというジレンマがあります。
野生のプログラマで就職に有効なくらいの力を見せるとしたら、なにかのコミッター(なにする人かよく知りませんが)とかになって「××ならこの人」となったり、プログラミングコンテストで上位の成績を残したりしなければいけないのかもしれません。
どうしたものでしょうね。ブクマカのみなさんの反応を見ると、専門学校でもあまり就職に有利にならない(ホントか?専門学校の意味あるのか?)という話ですが、目的が就職ならば、一番の近道のような気がします。
そこらへんからは、元増田さんがなにをしたいか、あるいは聞いてみたいだけだったのかによります。仕事には適性とやる気が大事です。あとは年齢と必要性かな。進路はオーダーメイド以外にはありえないので、提示された案を自分で選んでそれに賭けるしかないのかな、と思います。
さて、この文章は実はこの一文に反応してのものです。(↑のは前書き)
GWあたりからトシも考えずにRubyの再入門をしていまして、手始めに「首相動静」の整形ツールを作ってみました。
初心者で(Rubyに関しては仕事で使ったことないので)なにか作ってみよう、というとこの程度ですね。
これで就職に有利になるかというと、あんまりそうは思えないなあ。Excelのマクロが組めるとかのほうがどこかの事務所に潜りこめそうですよ(でもそれも最近はインフレ気味かもしれませんね)。
朝日新聞の首相動静は詳細ですが、改行が入っておらず、大変読みにくいものです。こんな感じです。
【午前】9時31分、自民党本部。33分、同党役員会。10時2分、官邸。5分、閣議。21分、宇宙開発戦略本部。34分、柴山昌彦文部科学相。38分、岩屋毅防衛相。41分、山下貴司法相。11時3分、安全保障と防衛力に関する懇談会。
【午後】0時11分、政府・与党連絡会議。44分、山口那津男公明党代表。1時27分、日韓議員連盟の額賀福志郎会長、河村建夫幹事長。2時20分、行政改革推進会議。52分、兼原信克官房副長官補、秋葉剛男外務事務次官。3時36分、麻生太郎財務相、財務省の岡本薫明事務次官、太田充主計局長。4時7分、太田氏出る。可部哲生理財局長加わる。15分、全員出る。25分、黒川弘務法務事務次官。34分、谷内正太郎国家安全保障局長、北村滋内閣情報官、宮川正内閣衛星情報センター所長。41分、谷内、宮川両氏出る。5時3分、北村氏出る。10分、東京・永田町のザ・キャピトルホテル東急。宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。20分、官邸。6時18分、ガーナのアクフォアド大統領を出迎え。記念撮影。19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。27分、アクフォアド大統領と会談。7時12分、署名式、共同記者発表。32分、公邸。首相主催の夕食会。8時43分、アクフォアド大統領を見送り。9時、ヨルダンのアブドラ国王と電話協議。
ただ、これはフォーマットがはっきりしており、
と、例を見るかぎりキッチリとしたルールに則っているようです。
なので、「これだったら整形できるかも」と思い、再び学びはじめたRubyで整形ツールを作ってみることにしました。
【午前】
10時02分、官邸。
10時05分、閣議。
10時21分、宇宙開発戦略本部。
【午後】
01時27分、日韓議員連盟の額賀福志郎会長、河村建夫幹事長。
02時20分、行政改革推進会議。
03時36分、麻生太郎財務相、財務省の岡本薫明事務次官、太田充主計局長。
04時15分、全員出る。
04時34分、谷内正太郎国家安全保障局長、北村滋内閣情報官、宮川正内閣衛星情報センター所長。
04時41分、谷内、宮川両氏出る。
05時10分、東京・永田町のザ・キャピトルホテル東急。宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。
05時20分、官邸。
06時18分、ガーナのアクフォアド大統領を出迎え。記念撮影。
06時19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。
あと、午後の時刻を24時間制にしたいな、とも思いますが、それは今後の課題(つぎに首相動静が話題になったとき)とします。全角数字の計算ってどうやるんだろう?
たぶんRubyistにいろいろ突っこまれると思うけど、こんな感じです。
プログラマは玉石混淆ですが、これは石のほうの例だと思っていただければさいわいです。
※ はてな記法にはシンタックスハイライトあるけど、増田だとInternal Server Errorになるのではずしました。見にくくてスマソ。
# encoding: utf-8 # 漢字コンバータのライブラリを取りこむ(Stringに漢字変換メソッドを付けてくれる。神) require 'kconv' # 正規表現パターン # 時刻をh時m分形式からhh時mm分形式にする # 否定後読みを使用する # 時は行頭にある OneDigitHour = /^((?<![0-1])[0-9]時)/ # 分は時のあとにある。このパターンとマッチすると、92;1が時、92;2が分になる。 OneDigitMinute = /^([0-9]{1,2}時)(?<![1-5])([0-9]分)/ # 分のない、時だけの行のパターン。否定先読みを使用 HourWithoutMinute = /^([0-9]{1,2}時)(?![0-5]?[0-9]分)/ # 行頭のh時m分をhh時mm分にするサブ処理(これは関数といっていいの?) def convTopHourMinute2TwoDigits(oneLine) # 時を変換 oneLine.sub!(OneDigitHour, "092;92;1") # 分を変換 oneLine.sub!(OneDigitMinute, "92;92;1092;92;2") # 分がない場合"00分"を追加 oneLine.sub!(HourWithoutMinute, "92;92;100分") # 戻り値 oneLine end # 入力ファイルの名前 InputFilename = "首相動静2018年12月11日.txt" # 出力ファイルの名前 OutputFilename = "首相動静2018年12月11日_編集済.txt" # 入力ファイルをオープン inFile = File.open(InputFilename, "r") # 出力ファイルをオープン outFile = File.open(OutputFilename, "w") # 時刻パターンはシンプルに、h時、m分、h時m分、という3パターンを結合する # 1つのパターンで全部カバーするよりこちらのほうが見やすい。というか、脳の容量の問題で1文に書ききれなかった jikokuPattern = /[0-9]{1,2}時[0-9]{1,2}分、|[0-9]{1,2}時、|[0-9]{1,2}分、/ # 午前/午後 ampm = /(【午前】|【午後】)/ # 午前/午後、あるいは時刻の前で改行するためのパターン kaigyouSign = Regexp.union(ampm, jikokuPattern) # ファイル一括読み込み # 昔は1行ずつ読みこんでました。メインメモリが3MByteとかだったので contents = inFile.read.toutf8 # 入力終了。閉じておきます inFile.close # スコープの関係から、ここでローカル変数に代入 # ※ Rubyのスコープと暗黙の型には泣かされました。これに慣れるのがRubyのコツかしら # 明示的な型宣言はあったほうがいいと思うなあ。エラー出力の理由がわからなかったりするので。 hour = "" # デバッグ行はコメント化しています # 時刻パターンチェックのため、コンテンツを出力してみる # p jikokuPattern.match(contents) # エントリを改行サインで行に分ける contents.gsub!(kaigyouSign, "92;n92;92;&amp;") # "92;92;&amp;"はマッチした文字列そのもの。2重のエスケープ"92;92;"が必要 # 改行チェックのため出力 # p contents # 入力を行で分割して各行ごとに処理 contents.split("92;n") do |oneLine| # 午前/午後を示す開きカッコ"【"があるか if (oneLine =~ /^【/) then # そのまま出力 outFile.write(oneLine + "92;n") # p "午前午後:" + oneLine next # 空白行は無視(スキップする) elsif (oneLine =~ /^[92;s ]*$/) then # 出力しない # p " 空白行:<skip>" next # 行頭に「時」があるか elsif (oneLine =~ /^[0-9]{1,2}時/) then # あったら時間表示を抜きだしておく hour = oneLine.match(/^([0-9]{1,2}時)/)[0] # p " 時:" + oneLine outFile.write(convTopHourMinute2TwoDigits(oneLine) + "92;n") next else # 「時」がなければつけて出力 oneLine = hour + oneLine # p "普通の行:" + oneLine outFile.write(convTopHourMinute2TwoDigits(oneLine) + "92;n") end end
手でやったほうが早いね。
以上
https://oomnitza.zendesk.com/hc/en-us/community/posts/360041950754-26-03-2020-Ничто-не-случается-дважды-2-сезон-13-серия-последние-серии-смотреть-от-26-марта-
https://oomnitza.zendesk.com/hc/tam/community/posts/360042154333-26-03-2020-Корни-12-серия-СТС-смотреть-бесплатно-в-хорошем-качестве-
https://oomnitza.zendesk.com/hc/tut/community/posts/360041954414-26-03-2020-Патриот-13-серия-Тнт-все-серии-сезона-
https://oomnitza.zendesk.com/hc/tam/community/posts/360042126273--В-шаге-от-рая-13-серия-Россия-1-26-03-2020-последние-серии-смотреть-от-26-марта-
https://oomnitza.zendesk.com/hc/tut/community/posts/360042144493--Доктор-Вера-15-серия-26-03-2020-качество-HD-от-26-марта-
https://oomnitza.zendesk.com/hc/en-us/community/posts/360042153893--Корни-14-серия-на-канале-СТС-26-03-2020-в-хорошем-качестве-
https://oomnitza.zendesk.com/hc/tut/community/posts/360042153893--Корни-14-серия-на-канале-СТС-26-03-2020-в-хорошем-качестве-
https://oomnitza.zendesk.com/hc/tut/community/posts/360041947754--Отречение-21-серия-украина-ТРК-26-03-2020-онлайн-сериал-смотреть-
https://oomnitza.zendesk.com/hc/en-us/community/posts/360042146113-26-03-2020-Жизнь-после-жизни-9-серия-хорошее-качество-смотреть-от-26-марта-
出てくる人物どいつもこいつもみんな物理屋。そしてみんな頭がおかしい。
主人公が物理屋ということで画面のそこかしこに数式が登場するのだけれどもこれがずいぶん凝っています。
以下6話まで視た感想です。
QCD(量子色力学)の漸近的自由性の証明です。2004年ノーベル物理学賞。
(6話より)
ホワイトボードに書いてある数式は QCD のベータ関数の計算です。
彼女が数式を修正した後は β<0 になっています。これはQCDが漸近的自由性を持つ理論であることを意味しています。ちなみに部屋の左隅にある小さなホワイトボードにはQCDの真空偏極による反遮蔽効果のイメージ図が描かれています。こちらも漸近的自由性に関する図です。
どうやらこの世界ではまだQCDの漸近的自由性が証明されていないようです。それではいったいいつ頃なのでしょうか?
何話か忘れましたが カビボ小林益川行列 がホワイトボードに描かれている回がありました。時系列順に並べてみましょう:
どうやらシェルドンたちがいるのは1973年の世界のようです。
史実によるともうすぐウィルチェック達が論文を出してしまうはずなのですが・・・?
ひも理論は一般の方向けの翻訳で、本来の訳は弦理論(げんりろん)です。 String Theory = 弦理論
さて、本題に入りましょう。シェルドンは弦理論屋なのでしょうか?
実は6話まで弦理論らしきものが出てきません。ずっと場の量子論を計算しているのです。
しかもこの時代は1973年です。この時代にいた弦理論屋とは何者なのでしょうか?
というのも、弦理論はもともとハドロンを記述する模型として研究されていたものだからです。現在のように弦理論が究極理論候補と考えられるようになったのは1984年の第一次ストリング革命以降の話です。時代背景を考えるとシェルドンは南部後藤の弦でハドロンを研究していると考えるとしっくりきます。彼がQCDを研究する理由も、ボスがハドロン8重項をホワイトボードに書いているのもこれで理解できます。彼の研究対象はハドロンなのです。
もっと直接的な証拠があります。第1話でこのような会話をしています: (https://www.youtube.com/watch?v=AF58gWwHOwY)
26次元と言っています。これは面白いですね。もし現代の弦理論屋さんに「この世界は何次元ですか?」と聞くと10次元、もしくは11次元と帰ってくるのではないでしょうか。
現在の弦理論屋さんが研究しているのは超弦理論(10次元)やM理論(11次元)、そしてシェルドンが研究しているのは南部後藤の弦(26次元)なのです。
この時代において世界は26次元だと言い切るのはなかなかヤバい人ではないでしょうか。
先ほど書いたように弦理論が脚光をあびるようになったのは1984年以降です。
1973年は弦理論の暗黒期だったはずです。当時は弦理論は欠陥があると考えられていました。
米谷さんやシュワルツの重力子の論文が1974年であることを考えてもシェルドンはぶっ飛んでいるように思います。
先ほど紹介したシーンでは「世界は26次元だ」と主張するシェルドンは頭がおかしいと思われているようです。一方で現代の視聴者は、別に彼はおかしなことは言っていないことを知っているのです(26かはともかく)。この辺りの捻れが面白さを生んでいるように思います。
頑張れシェルドン!早く論文出さないとウィルチェック達に先越されちゃうぞ!
なんとも味わい深いコメディです。
職場の人たちのプログラミングの方法というか、書き方というか、意識というか、それが私と違っていてちょっとツライ。
public class X0001 { public static final String CONST_STRING_VALUE_ONE = "1"; public static final String CONST_STRING_VALUE_TWO = "2"; public static final String CONST_STRING_VALUE_THREE = "2"; ... public static final String CONST_STRING_VALUE_ELEVEN = "11";
「XXコードは2文字で入力して下さい」とかそういうメッセージを表示する時の2の部分に、使ってるんだけど、
ソースコードにマジックナンバーを書くの禁止っていうルールに反しないようにするためのfinal String.
code123 というStringな変数の中身が、X1234.RET_CODE_NG と等しいか調べるのに、
if (X1234.RET_CODE_NG.equals(code123)) { ...
って書くのも気持ち悪い。code123がnullだった時の対策としてのひっくり返し記述なんだろうけどさ。
if ( code123 != null &amp;&amp; code123.equals( X1234.RET_CODE_NG )) { ...
複雑な計算をする処理があるクラスで、メソッドもフィールドも全部staticで書いてる人とか、
それマルチスレッドで動いたら計算内容がぶっ壊れる可能性ありませんか、ということで、
非staticで書き直してたけど、なぜそれがダメなのかわかってない風だった.
んなわけねーだろ、インターフェースというものがなぜあるか考えろ
そのような拡張性の無さに困ることがない。
BOOL型と STRING型の混在プログラムよりも、STRING型で統一されたプログラムのほうが美しいじゃない?
true or false 以外に may be true とか、not so false みたいな新たな状態を示す値を定義できない問題がある。
だが、最初から文字型で定義しておけば、そのような拡張性の無さに困ることがない。
BOOL型は省メモリだ、判定が速いだと言い出す輩もいるが、現代のコンピュータでは、STRING型でも十分に代用可能。
処理速度がボトルネックになった時点でリファクタリングすればいい。
import random
''.join(random.SystemRandom().choice(string.ascii_letters) for _ in range(8))
パスワードも許されている文字の範囲を気にしつつこんな感じで作ってる。
{
std::string input = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
std::random_device rnd;
input.end(),
8,
rnd);
std::cout << result << std::endl;
return 0;
}
{
{
Person person = new Person();
person.firstName = "山田";
person.lastName = "太郎";
Console.WriteLine(person.GetFullName()); // "山田 太郎" と表示される
}
}
public class Person
{
// FirstName プロパティ
private string firstName;
public string FirstName
{
get { return firstName; }
}
// LastName プロパティ
private string lastName;
public string LastName
{
get { return lastName; }
}
{
return firstName + " " + lastName;
}
}
午前中にC#について聞いてた人がいて、ついでに聞きたい。
Person person = new Person();
new Person(); としたら、勝手に「Person.cs」の中の「Person」クラスを探してくれるんだろうか。
前の増田が言っていた、Listのやつも知りたい。
paizaとかで入門動画見てれば分かるだろうか。
#include "stdafx.h" #include <string.h> int main() { char buffer[47]; strcpy(buffer, "%0sHelloWorld\n"); for (int i = 0; true; i++) { int c = i % 16 ; if (c % 8 == c) { buffer[1] = '0' + c; } else { buffer[1] = '0' + 8 - (c-8); } printf(buffer," "); } return 0; }
一気に並べてみる
int i; int space; for (int i = 0; i < 8; i++) { for (space = 0; space < i; space++) { printf(" "); } printf("Hello world\n"); }
すまん <は半角の<に置き換えてくれ(w)
int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { memset(buffer, 0x20, i); printf("%sHello world\n",buffer); }
int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { buffer[i] = 0x20; printf("%sHello world\n",buffer); }
この場合は特に影響はないが一般的にはmemsetを使う使わないは大きな影響になるので
std::string space; for (int i = 0; i < 8; i++) { printf("%sHello world\n", space.c_str()); space += " "; }
std::string space_org; for (int i = 0; i < 8; i++) { std::string space = space_org + " "; printf("%sHello world\n", space.c_str()); space_org = space; }
ざつにかんがえても 書き方いろいろ
つまり まぁ どれがいいというよりは
状況に応じてかき分けていく必要がある
学校の授業などだと
アルゴリズムの話で
ヒープソート マージソート クイックソートの比較みたいな話があるけど
そこまで難しい話にいかなくても
書き方がたくさんある
std::string space; for (int i = 0; i < 8; i++) { printf("%sHello world\n", space.c_str()); space += " "; }
↑ C++的 な 書き方1
std::string space_org; for (int i = 0; i < 8; i++) { std::string space = space_org + " "; printf("%sHello world\n", space.c_str()); space_org = space; }
VisualStudioでローカルで動作するアプリを作ろうと思ってるんだけど
本当に初歩的なことかもしれないことが分からない。
「class」というやつについてだ。
そいつの中には複数のclassさんが存在してもいいのか?SAVACLASSとLOADCLASSが存在しても良いのか?
public class Person { public string name { get; set; } public int age { get; set; } } public class Office { public string name; public ObservableCollection<Person> persons; } private Office office; private void init() { office = new Office(); office.name = "オフィス"; office.persons = new ObservableCollection<Person>(); office.persons.Add(new Person { name = "001", age = 11 }); office.persons.Add(new Person { name = "002", age = 22 }); office.persons.Add(new Person { name = "003", age = 33 }); }
OFFICEという属性にはPARSONというものが集まってて、そのPARSONの情報にはNAMEとAGEがありますよ!というのは分かるんだけど
シリアライズも、デシリアライズも、「圧縮⇔解凍」みたいなイメージしかないし
うーん。難しい。
クラスって何なんだ。VBA風に説明できる人いない?(VBAでもClassは使わずにFunctionとSUBだけ使い回してた)