【Java】数値型から文字列型へ、文字列型から数値型への変換方法メモ
// 数値型から文字列型への変換 String str = Integer.toString(100); // 文字列型から数値型への変換 int i = Integer.parseInt(str);
【Java】文字列比較についてのメモ
同一の文字列オブジェクトを参照しているため、==演算子で比較するとtrue
String str1 = "abc"; String str2 = str1; if(str1 == str2) { System.out.println("成立"); // 出力される }
異なる文字列オブジェクトのため、==演算子で比較するとfalse
String str1 = "abc"; String str2 = new StringBuilder("abc").toString(); if(str1 == str2) { System.out.println("不成立"); // 出力されない } else if (str1.equals(str2)) { System.out.println("成立"); // 出力される }
文字列から暗黙に生成されるStringオブジェクトは、文字列の内容が一致すれば同一のStringオブジェクト
String str1 = "abc"; String str2 = "abc"; if(str1 == str2) { System.out.println("成立"); // 出力される }
文字列の内容を比較する場合は、常にequalsメソッドを使用
String str1 = "abc"; String str2 = new StringBuilder("abc").toString(); if(str1.equals(str2)) { System.out.println("成立"); // 出力される }
StringBuilderオブジェクトを比較する場合は、contentEqualsメソッドを使用
StringBuilder sb1 = new StringBuilder("abc"); StringBuilder sb2 = new StringBuilder("abc"); if(sb1 == sb2) { System.out.println("不成立"); // 出力されない } else if(sb1.equals(sb2)) { System.out.println("不成立"); // 出力されない } else if(sb1.toString().contentEquals(sb2)) { System.out.println("成立"); // 出力される }
【Java】文字列結合についてのメモ
演算子「+=」を使った文字列結合の場合、暗黙的にStringBuilderオブジェクトを生成している。
そのため、ループ処理を使った文字列結合の場合は、StringBuilderオブジェクトの生成を最小限にすべき。
String[] array = {"abc", "def", "ghi"}; StringBuilder sb = new StringBuilder(); for (String str : array) { sb.append(str); } System.out.println(sb); // abcdefghiと出力される
【Java】StringBuilderクラスでよく使うメソッドメモ
変更可能文字列クラスのStringBuilderクラスのメモ。
append:指定した文字列を追加
StringBuilder sb = new StringBuilder("abc"); System.out.println(sb.append("def")); // abcdefと出力される
delete:部分文字列を削除
StringBuilder sb = new StringBuilder("abcdef"); System.out.println(sb.delete(1, 3)); // adefと出力される
indexOf:文字列から、指定した文字を検索
StringBuilder sb = new StringBuilder("abcdef"); System.out.println(sb.indexOf("c")); // 2と出力される
insert:文字列を指定位置に挿入
StringBuilder sb = new StringBuilder("abcdef"); System.out.println(sb.insert(3, "abc")); // abcabcdefと出力される
replace:文字列を置換
StringBuilder sb = new StringBuilder("abcdef"); System.out.println(sb.replace(3, 5, "abc")); // abcabcfと出力される
setCharAt:指定位置に文字をセット
StringBuilder sb = new StringBuilder("abcdef"); sb.setCharAt(3, 'c'); System.out.println(sb); // abccefと出力される
substring:部分文字列を取得
StringBuilder sb = new StringBuilder("abcdef"); System.out.println(sb.substring(3, 5)); // deと出力される
StringオブジェクトからStringBuilderオブジェクトに変換
String str = "abc"; StringBuilder sb = new StringBuilder(str);
StringBuilderオブジェクトからStringオブジェクトに変換
StringBuilder sb = new StringBuilder("abc"); String str = sb.toString();
【Java】Stringクラスでよく使うメソッドメモ
JavaのStringクラスでよく使うメソッドのメモです。
charAt:指定した位置の文字を取得
String str = "abcdefghijklmn"; str.charAt(0); // aが出力される
compareTo:辞書的にどちらが大きいか比較
String str1 = "a"; String str2 = "b"; System.out.println(str1.compareTo(str2)); // -1が出力 System.out.println(str1.compareTo(str1)); // 0が出力 System.out.println(str2.compareTo(str1)); // 1が出力
contains:指定した文字列を含むかチェック
String str = "abcdef"; System.out.println(str.contains("g")); // falseを出力 System.out.println(str.contains("a")); // trueを出力
indexOf:文字列から、指定した文字を検索
String str = "abcdef"; System.out.println(str.indexOf("c")); // 2を出力
isEmpty:空文字チェック。空文字であれば、true。
String str = ""; System.out.println(str.isEmpty()); // trueを出力
split:文字列を区切り、配列に分割
String str = "abc,def,ghi"; String array[] = str.split(",", 0); System.out.println(array[0]); // abcが出力 System.out.println(array[1]); // defが出力 System.out.println(array[2]); // ghiが出力
startsWith:指定した文字列から始まるかチェック
String str = "abcdefghi"; System.out.println(str.startsWith("b")); // falseが出力 System.out.println(str.startsWith("a")); // trueが出力
substring:部分文字列を取得
String str = "abcdefghi"; System.out.println(str.substring(2, 5)); // cdeが出力
join:区切り文字列で結合
String str = String.join(".", "abc","def","ghi"); System.out.println(str); // abc.def.ghiと出力される
また、文字列リテラルは暗黙的にStringクラスのオブジェクトを生成する。だから、以下の書き方は不要なオブジェクトを生成してしまう。
String str = new String("abcdefg");
【海外ドラマ感想】「Homelnad シーズン1-2 トラウマ」
こんにちわ。上上下下太郎です。
Homeland シーズン1-2 トラウマの感想です。
アルカイダから奇跡の生還を果たしたニコラス・ブロディ軍曹。しかし、CIA諜報員であるキャリー・マディソンだけが、ブロディ軍曹に疑惑の眼差しを向ける。
前回は、キャリーの闇が垣間見えましたが、今回はブロディ軍曹の葛藤が描かれています。また、人はいつ、どんな時に自分の救いに出会えるのかわかりません。
あらすじ
アルカイダから帰国し、アメリカ全土がブロディ軍曹に注目する中、当の本人は家に閉じこもる生活を送っていた。軍はブロディを再入隊させ、広告塔に仕立てあげたいが、ブロディはそれを拒否。
そんな中、キャリーの元へ情報提供者から重大な情報が入る。アルカイダの最高指導者、アブ・ナジールがファリド皇太子に会いに来たという目撃情報だ。アブ・ナジールが動いたことと、ブロディの帰国との関連を指摘するキャリーだが。。
感想(※ネタバレ含みます)
見た率直な感想・・・☆☆☆(普通に面白い)
今作では、ゲスト(と言ってしまっていいのかわかりませんが)が2名出演しています。
まず1人目は、「ベター・コール・ソウル」でジミー(ソウル・グッドマン)の兄役を演じているマイケル・マッキーン(チャック・マッギル)が、ソウルに弱みを握られている判事役として出演しています。
ベター・コール・ソウルでは弁護士役を、Homalandでは判事役ということで、偶然だとは思いますが法廷つながりになっています(笑)。
そしてもう1人は、スーパーガールでおなじみのメリッサ・ブノア。
眩しすぎるくらい綺麗な人ですが、このHomelandではすごい役を演じています。出演時間は短いですが、それでもあの役を演じた彼女は素晴らしいです。後のスーパーガールでの活躍も納得な女優さんです。
さて、今作の見どころはブロディの「決意」です。
冒頭ではブロディは、部屋に閉じこもり、記者たちに全く会おうとしません。ソウルが指摘していましたが、「テロリストとしてアメリカに帰国したなら、戦争の英雄として記者たちの前に積極的に出るはず」だと。
しかしキャリーは、「テロリストといっても人間。家族を前にして、決意が揺らいでいる」と反論します。
この2人のやり取りは、ブロディの心境そのものです。ブロディは悩み、苦しみますが、最後には戦争の英雄”ごっこ”を始めるため、記者たちの前に立ったところで今作が終わります。
僕はブロディが、テロリストとして生きることを再決意した点は以下だと考えています。
- 親友のマイクがブロディに、軍に再入隊することを迫ったこと
- 上とも関連しますが、マイクが自分の家族と親密すぎていること
- 人には戦わなければならないときがあるから
1と2に関しては、ブロディがマイクに嫉妬していることは明らかです。家に帰ると何故かマイクが居て、子供たちは自分よりもマイクになついている。息子のクリスが、「マイクおじさん」と呼ぶことも納得がいっていない様子。
そして、妻のジェシカも軍の再入隊を遠回しに迫ったことも、ブロディを傷つけたのではないでしょうか。
3に関しては、象徴的なシーンがあります。ブロディがクリスに「人には戦わなければならないときがある」と教えるシーンです。これは、自分自身がテロリストとして戦うことを決意した瞬間ではないかと僕は考えています。
クリスに話しかけていますが、実は自分自身に言い聞かせているように見えます。
そして最後に、ブロディがイスラム教に出会った場面が回想で描かれています。まさに、光(救い)を見つけた瞬間でした。このシーン、まさに必見です。
最後まで読んでいただき、ありがとうございました。
【16-17 NBA観戦記録 NBAファイナル】
こんにちわ。上上下下太郎です。
3年連続同カードとなった、クリーブランド・キャバリアーズ VS ゴールデンステイト・ウォーリアーズのファイナルを観終えました。
まず、3年連続でファイナルが同カードとなるのはNBA史上初!今後、語り継がれるライバル関係の2チームの対決とあって、アメリカでの視聴率も1998年以降最も高く、まさに大注目のカートでした。
また、プレイオフに入ってから、キャブス、ウォーリアーズとも絶好調。ウォーリアーズなんて、ファイナルまで無傷の12連勝ですからね!キャブスも、カンファレンスファイナルでセルティックスに1敗しただけで、去年のファイナルからカウントすると、プレイオフ13連勝。これは、ショータイム時代のレイカーズに並ぶ歴代1位(すぐにウォーリアーズが更新しますが。。)
両チームとの敵なしの無敵状態で、7戦までもつれる混戦となると予想していましたが、蓋を開けてみたらウォーリアーズの圧勝!あわや16連勝で優勝か!?というところまでいきましたが、キャブスは意地を見せて第4戦を取り返すも、キャブスの反撃もそこまで。見事、ウォーリアーズが優勝を果たしました。
守備が光ったウォーリアーズ
点を取って取って取りまくるウォーリアーズですが、このシリーズではもう一つの持ち味のディフェンス力が勝利を呼び寄せました。カイリーアービングにぴったりマークしたクレイ・トンプソン、ゴール下で体を張り、キャブスのトンプソンにリバウンドを取らせなかったグリーン。そして何より、レブロンと真っ向から勝負したデュラント!鉄壁の守備から、速攻で流れを作るウォーリアーズのチームバスケットにまさに死角なしですね。
ファイナルでは、レギュラーシーズンのような輝きをなかなか放てなったカリーも、このファイナルでは素晴らしい活躍だったと思います。3Pもさることながら、体を張ったリバウンドやルーズボールへの執着など、気迫のこもったプレイでした。やはり、昨シーズンの1勝3敗からの負けが相当力になっているんでしょうね。
新しい時代を作るのか!?ケビン・デュラント
ただ、このシリーズで圧倒的だったのがケビン・デュラント!
ファイナルのGame2が終わったあたりから容易に想像できましたが、文句なしのファイナルMVPです。ただ、得点を取るだけでなく、チームを勝利に導く得点力。Game3で見せたクラッチシュートは痺れました。(誰だ、デュラントをソフトだなんて言ったのは。。)
昨年はカンファレンスファイナルでウォーリアーズを苦しめたデュラントですが、味方になるとこうまで頼もしいんですね。特に、レブロンとマッチアップしての勝利には大きな大きな意味があります。
ウォーリアーズへ移籍を決めたときは、批判されまくりでしたが、このままウォーリアーズの一員として新たな時代を作ってほしいです。