ふみぽん's diary

技術的な備忘録が主のブログ

Java実践 文字列の連結

文字列の連結についての備忘録

  • StringBuilderクラスを用いた文字列の連結

 

・StringBuilderインスタンスは内部にメモリ領域(バッファ)を備えている。

・そのメモリ領域に連結した文字列を蓄えることができる。

 

連結の手順

  1. append( )メソッドを呼び出してバッファに文字列を追加していく。(必要回数実行)
  2. toString( )メソッドを呼び出して、連結済みの文字列を取り出す。

 

サンプルコード 

 public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append("fumi");
sb.append("pon");
sb.append("'s diary");

System.out.println(sb.toString());
}

 

  • Stringインスタンスの不変性について

・Stringインスタンスが保持する文字列情報は、インスタンス化した際に初期化される。

・インスタンス化の以後、2度と変化することはない。

 

 String s = "Hello"

    s = s + "  World"

 

この結果。。。

 

  s = "Hello  World" のように

インスタンスが大きくなっているわけではない。

 

結論

「 + 」による連結が行われる瞬間に

古いインスタンスは捨てられて、連結後の情報をもつインスタンスがnewされる。

   

Java実践 文字列の操作

文字列の操作についての備忘録

文字列の操作

  • 文字列を調査する

文字列の内部の内容や長さを調査するためのメソッド

操作 メソッド
内容が等しいかどうか調べる public boolean equals(object o)
大文字と小文字を区別せずに内容が等しいか調べる public boolean equalsIgnoreCase(String s)
文字列の長さを調べる public int length()
空文字かどうか調べる public boolean isEmpty()
  • 文字列を検索する

文字列の内部から、別の文字列(文字)を探すためのメソッド

indexOf()lastIndexOf()は先頭位置は0番目としてカウントする

操作 メソッド
文字列sを含むかどうか public boolean contains(String s)
文字列sで始まるか public boolean startsWith(String s)
文字列sで終わるか public boolean endsWith(String s)
文字chまたは文字列strが最初に登場する位置を調べる public int indexOf(char ch)
文字chまたは文字列strが後ろから検索して最初に登場する位置を調べる public int lastIndexOf(String str)
  • 文字列を切り出す

文字列の一部を別の文字列として切り出すためのメソッド

※下記のメソッドでは先頭位置は0番目として指定位置を選択すること

操作 メソッド
指定位置の1文字を切り出す public char charAt(int index)
指定位置から始まる文字列を切り出す public String substring(int index)
指定位置から任意の長さだけ切り出す(endindex番目は切り出されない) public String substring(int index, int endindex)
  • 文字列の変換する

文字列を変換・加工するためのメソッド

操作 メソッド
大文字を小文字に変換する public String toLowerCase()
小文字を大文字に変換する public String toUpperCase()
前後の空白を除去する(全角スペースは除去されない) public String trim()
文字列を置き換える public String replace(String before, String after)

『 Git 』使い方入門 

Gitの使い方入門編をまとめてみようの回

わかばちゃんと学ぶGit使い方入門OutPut〜

 

 

よく聞きますよね。。。

チームでシステム開発をする上で

『 Git 』を使ってバージョン管理を行う必要がありますと!

 

まず、違いがわからなかった2つの言葉

「Git」と「GitHub」について確認します。

 

 

Git とは

f:id:fumipow2317:20190324202300p:plain

 「 ファイルの変更履歴を記録できるバージョン管理システム

 

 

GitHub とは

f:id:fumipow2317:20190324202355p:plain

 「 Gitを使った複数名で行う開発を便利にする為のWebサービス

 ちなみにGitHubのロゴですが、頭は猫で足はタコみたいですよ。

 

 

次に操作についてです。

ここではあくまで備忘録的にしたいのでチーム開発でよく使うであろう

「マージ」「フェッチ」「プル」

についてまとめとおきます。

 

「マージ」 〜ブランチの統合〜

masterブランチから

ボタン追加用の開発ブランチdevelop_add_buttonを作成して、開発を行いました。

追加したボタン追加機能をmasterブランチに統合したいです。

 

つまり、やりたいことは、

masterブランチにdevelop_add_buttonブランチを取り込みたい!

 

そんなときに使うのが「マージ」です。

 

先輩

 「masterにチェックアウトして、develop_add_buttonブランチをマージして」

ふみぽん

 「はい!(そういうことね)」

 

「フェッチ」〜リモートリポジトリから最新の状態を取得〜

リモートリポジトリのmasterブランチの最新の状態を

とりあえず、ローカルで知りたい!そんな時に使うのが「フェッチ」です。

  1. リモートリポジトリのmasterブランチを「フェッチ」する
  2. ローカルリポジトリのリモート追跡ブランチorigin/masterが最新の状態になる
  3. ローカルリポジトリでmasterにチェックアウトする
  4. origin/masterブランチをmergeする

 

「フェッチ」して最新情報を取得して、「マージ」して最新情報を取り込む!

 

ふみぽん

 「でも2つの操作が1つにまとめられたら楽だよなー」

先輩

 「それが Pull だな!」

 

「プル」 〜Pullの正体は、fetch+mergeである〜

もう「フェッチ」のところで書いてしまいましたが。

 

「フェッチ」して最新情報を取得して、「マージ」して最新情報を取り込む!

= 「プル」 なのです!以上!

 

 

今回はGitの使い方入門ということで

「マージ」「フェッチ」「プル」について書いてみました。

 

Git使い始めてまだ日が浅いですが、

理解しないで操作することに恐怖を覚えます。

 

それは、

チームでファイルを共有するので自分の誤まった操作で

チームに迷惑をかけるのではと。。。

 

最低限の勉強をしようと思い、

わかばちゃんと学ぶGit使い方入門」で勉強したものを一部OutPutしました。

 

漫画と図でサクッと理解できそうだったので購入しましたが、正解でした。

最初の1冊としては、オススメです。

 

 

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

 

 

 

 

 

 

 

 

システム開発の流れってなんぞや

 

 

初めてのHatena Blog記事は、

少し前から取り組んでいる基本情報技術者試験の学習記録として

システム開発について書いてみます。

 

ここで、そもそも「基本情報技術者試験」とは。。。。

 

  • 国家資格みたいです
  • 学生でも社会人でも誰でも受験することができるみたいです
  • 情報処理の基本的知識や技能を問うレベルに位置づけられているようです
  • IT企業では、新入社員に取らせることがあるようです

 

 つまり

  ITエンジニアとしてキャリアをスタートさせるならこの試験の勉強は最適!

  といったところなんだと思います。

 

情報処理推進機構のリンクです。試験の概要があります。)
www.jitec.ipa.go.jp

 

 それでは、本題のシステム開発についてです。

 

システム開発の流れをわかりやすく言い換えれば、

普段使っているようなアプリケーションが

どのように生まれるのかというストーリです。

 

システム開発の一般的な流れ

 

『要件定義』

 ここから始まります。

 システムを使用するユーザーや発注先にヒアリングして

 求められる機能や性能を洗い出すフェーズ。

 

『仕様』

 要件定義を基にシステムのあるべき姿を定めるフェーズ。

 

『設計』

 仕様で定めたシステムのあるべき姿を

 どのような方法で実現するかを決定するフェーズ。

 設計には、

 ・外部設計

 ・内部設計

 ・プログラム設計

 と細分化しながら進めていくのが一般的です。

 

『実装(プログラミング)』

 直前で行った設計を基にプログラムを書くフェーズ。

 ひたすらカタカタをキーボードと向かい合います。

 

『テスト項目作成』

 システムの正常性を確認するためには、テストを行ってから納品します。

 そのテストフェーズではテスト項目を事前に洗いだし、手順に従って網羅的に

 テストを行うことが重要です。

 本フェーズでは、そのテスト項目表を作成します。

 

『テスト』

 実装完了の後、テスト項目表を基に検査するフェーズ。

 テストには、種類があります。

 そして、設計とペアになるという考え方です。

 ・単体テスト →  プログラム設計

 ・結合テスト →  内部設計

 ・システムテスト → 外部設計

 ・運用テスト →  要件定義とあっているか確認

 

『導入』

 テストの結果、問題がなければ

 晴れてシステム納入となります!!(パチパチパチ)

 

 

<まとめ>

 前工程のOutPutが、後工程のInPutになるということ

 

 ふみぽん

   「なんだか設計書がイマイチ書けないなぁ〜」

 先輩

   「設計書が書けなくて困っているようだね。

    仕様がしっかりしていないからだよ」

 ふみぽん

   「…」

   「(手戻りの発生や。仕様をもう一度確認しよう)」

 

 

 

ちなみに、この書籍で学習しております。

 

 

 

また、学習したことを少しずつOutPutしていくぞー!

それでは良い一日を。