- 1. java 文字列の検索
- 2. 文字列操作
- 3. 抽象メソッド
- 4. SpringのDIの仕組みの初歩と実装例
- 5. [Google Cloud Text-to-Speech API(V1)] Javaで音声の変換がサポートされている音声リストを取得する
- 6. Javaで「キャスト演算子と型変換ルール」の動作を確認してみた
- 7. JAVA アクセス修飾子
- 8. [Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションをキャンセル・削除する
- 9. json文字列をMapに変換する方法
- 10. Javaで「final変数を定数として利用する」の動作を確認してみた
- 11. [Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションを取得する
- 12. 【浦島太郎状態】久々にJavaをいじってみたら色々便利になってた件
- 13. 【Android】キーボード表示
- 14. MyBatis Dynamic SQLの導入で、Java開発を楽にしたい!
- 15. 【Jackson】Json文字列変換時のJsonParseException: Unexpected character (‘X’ (code XX))
- 16. [Google Cloud Speech-to-Text API(V2)] Javaで長時間実行オペレーションをキャンセル・削除する
- 17. Eclipse + Java + Gradle の環境で Doma を動かす
- 18. SpringAOPによるメソッドの開始・終了ロギング
- 19. [Google Cloud Text-to-Speech API(V1)] Javaでテキストを音声に変換する
- 20. Javaで「変数宣言で型推論を利用する」の動作を確認してみた
java 文字列の検索
## 文字列の検索
文字列の内部から、別の文字列(または文字)を探すためのメソッド
2種類ある
①含まれているか否かだけの判定
②文字列のどこに含まれているかという位置情報を返すもの|メソッド定義|操作|
|:———-|:——–|
|contains|ある特定の文字列(文字)が対象の文字列に含まれているか|
|startsWith|文字列がある特定の文字列(文字)で始まるか|
|endWith|文字列がある特定の文字列(文字)で終わるか|
|indexOf|ある特定の文字列(文字)が最初に登場する位置を調べる|
|lastIndexOf|ある特定の文字列(文字)を後ろから検索して最初に登場する位置を調べる|#### contains
特定の文字列(文字)が含まれているかを調べる
(大文字/小文字の区別する)
`対象の文字列.contains(検索する文字列)`
“`Main.java
public class Main {
public static void main(String[] args) {
String s1 = “Hello”;
文字列操作
## 文字列調査
|メソッド| 操作内容|
|:——:|:——–|
|equals|内容が等しいか調べる|
equalsIgnoreCase|大文字/小文字を区別せず内容が等しいか調べる|
|length|文字列長を調べる(スペースも1文字としてカウント)|
|isEmpty|空文字か(長さが0か)調べる|#### equals
内容が等しいか区別する
(大文字、小文字、空白を区別する)
“`Main.java
public class Main {
public static void main(String[] args) {
String s1 = “Hello”;
String s2 = “Hello”;
String s3 = “HELLO”;
String s4 = ” Hello “;
System.out.println(s1.equals(s2)); // s1とs2を比較
System.out.println(s1.equals(s3)); // s1とs3を比較
System.out.println(s1.eq
抽象メソッド
## 抽象メソッド
現時点では処理内容が未定で実装をもたず、メソッドや引数などの定義だけ宣言するメソッド。
処理内容は子クラスなどで記述。クラスによって処理内容を変えられる。### 抽象メソッドの宣言
“`
public abstrct 戻り値の型 メソッド名(引数リスト);
“`
#### 宣言するメリット
・オーバーライドの強制
・何もしないメソッドなのか、現時点で処理内容が確定できないメソッドなのか区別ができる### 抽象メソッドを含むクラスの宣言
抽象メソッドを1つでも含むクラスは抽象クラスの宣言を行う
“`
public abstract class クラス名 {
}
“`
#### 宣言するメリット
・抽象として宣言されるとnewによるインスタンス化が禁止される。抽象クラスを継承した子クラスで必ず、メソッドの内容を記述する必要はなく、孫クラスやひ孫クラスなどどこかの時点で記述できる
インタフェースなどもでてき意味は分かるけど、ぴんと来ないというか使いこなせない:sweat:
為になりそうな記事がいくつかあったので読んで理解したいと思います:rela
SpringのDIの仕組みの初歩と実装例
# この記事に書いてあること
– [プロになるためのSpring入門](https://gihyo.jp/book/2023/978-4-297-13613-0)の基本編のDIに関する内容を読んだまとめ
– DIを使ったコードと対応するテストコードの実装例# DIとは?
Dependency Injection(依存性の注入)の略。
ソフトウェアの設計パターンの一つで、クラス間の依存関係をフレームワーク等で管理して外部から注入する仕組みのこと。[^1]
[^1]:厳密には依存性の注入自体はフレームワークを利用しなくても可能だが、コードが煩雑になるため何らかのフレームワークを使う方が管理しやすい。# DIのメリット
– 依存オブジェクトの切り替えが簡単になり、コードの再利用性、可読性、テスト容易性が上がる
– 依存オブジェクトをインターフェースにすることでビジネスロジックから低レイヤーへの依存を切り離せる具体例として保存処理や読み込み処理でServiceクラスがその処理の中でRepositoryクラスを利用してデータベース等に保存や読み込みを行う処理を考えてみます。
この時
[Google Cloud Text-to-Speech API(V1)] Javaで音声の変換がサポートされている音声リストを取得する
Cloud Text-to-Speech API V1(Java)を使用して、
Javaで音声の変換がサポートされている音声リストを取得する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Text-to-Speech API(V1)] JavaでText-to-Speech APIを使ってみる](https://qiita.com/doran/items/9edbd7d4ed11c5c4ec5f)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[サポートリストを取得](#1-サポートリストを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|## 1. サポートリストを取得
音声の変換がサポートされている音声リストを取得します。### 1.1. スコープ
OAuth2.0でこのAPIを実行するには、以下のスコープを指定してください。
サービ
Javaで「キャスト演算子と型変換ルール」の動作を確認してみた
# 概要
Javaで「キャスト演算子と型変換ルール」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/var/index11.html
# 実装
以下のファイルを作成しました。
“`JSample11_1.java
class JSample11_1{
public static void main(String[] args){
float f = 10;
double d = 1234L;System.out.println(“f=:” + f);
System.out.println(“d=:” + d);
}
}
“`
“`JSample11_2.java
class JSample11_2{
public static void main(String[] args){
int i1 = 123456789;
float f1 = i1;
System.out.println(“i1=:” + i1);
Syst
JAVA アクセス修飾子
## JAVA アクセス修飾子テーブル
| アクセス修飾子 | クラス内 | 同一パッケージ内 | サブクラス | その他のパッケージ |
| ————– | ——– | —————- | ———- | —————— |
| public | 〇 | 〇 | 〇 | 〇 |
| protected | 〇 | 〇 | 〇 | × |
| (なし) | 〇 | 〇 | × | × |
| private | 〇 | × | × | × |## アクセス修飾子補足
– public:
どこ
[Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションをキャンセル・削除する
Cloud Text-to-Speech API V1(Java)を使用して、
長時間実行オペレーションをキャンセル・削除する方法についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Text-to-Speech API(V1)] JavaでText-to-Speech APIを使ってみる](https://qiita.com/doran/items/9edbd7d4ed11c5c4ec5f)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[オペレーションをキャンセル](#1-オペレーションをキャンセル)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[オペレーションを削除](#2-オペレーションを削除)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|##
json文字列をMapに変換する方法
“` 変換.json
{
“name”: “John”,
“age”: 30,
“address”: {
“street”: “1234 Elm St”,
“city”: “Somewhere”,
“zip”: “12345”
},
“phoneNumbers”: [
{“type”: “home”, “number”: “123-456-7890”},
{“type”: “work”, “number”: “098-765-4321”}
]
}
“`“` Main.java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;public class Main {
public static void main(String[] args) {
// JSON文字列の定義(ネストされた構造を含む)
String json
Javaで「final変数を定数として利用する」の動作を確認してみた
# 概要
Javaで「final変数を定数として利用する」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/var/index10.html
# 実装
以下のファイルを作成しました。
“`JSample10_1.java
class JSample10_1{
public static void main(String[] args){
final float TAX = 0.1F;float price = 800 * (1 + TAX);
System.out.println(“料金は” + price + “です”);
}
}
“`以下のコマンドを実行しました。
“`
$ javac JSample10_1.java
$ java JSample10_1
料金は880.0です
“`# まとめ
何かの役に立てばと。
[Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションを取得する
Cloud Text-to-Speech API V1(Java)を使用して、
長時間実行オペレーションを取得する方法についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Text-to-Speech API(V1)] JavaでText-to-Speech APIを使ってみる](https://qiita.com/doran/items/9edbd7d4ed11c5c4ec5f)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[オペレーション一覧を取得](#1-オペレーション一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[オペレーションを取得](#2-オペレーションを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|## 1. オペレー
【浦島太郎状態】久々にJavaをいじってみたら色々便利になってた件
# もともとJava使い
自分がこの業界入った時はJava 1.5ぐらいでstruts 1.3でWebシステム作るのがモダンだった古き悪しき時代を乗り越えてきた、え~すけさんですよ。
そんなわけで、自分は転職組なので前の会社の話ですが、もれなく入社してから最初のプログラム研修はJavaを使って生のServlet/JSPや、strutsを使ってWEBシステムを作らされた記憶があり、大学でJavaのアプレットでなんか作るみたいなことはやってましたが、Webという覚えることだらけの魔境に四苦八苦してました。
ほら、WebってJavaだけじゃなくて、HTML/JavaScript/CSSが漏れなくついてくるから、覚えること増えるじゃん?そんなこんなで、この業界に入ってから割とずっとJavaのプロジェクトをやってきており、実務ではJava 1.4/1.5/6/8/11ぐらいまでの記憶しかなかったですが、久々にAndroidStudioのバージョンアップしたら17以降を使えやコラみたいな警告が出てしまったので、今っていくつまで出てるのか調べたのと、Java8ぐらいが全盛期の人がどれだけうらしま
【Android】キーボード表示
# はじめに
キーボードを表示する方法が調べたところ二つ出てきたので、どちらも調べ直さなくいていいようにメモがわりに記事にしておきます。# 表示(Java)
“`
binding.edtMessage.requestFocus();
InputMethodManager keyboardManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(binding.edtMessage, 0);
“`
または、
“`
binding.edtMessage.requestFocus();
InputMethodManager keyboardManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
keyboardManager.toggleSoftInput(1, InputMetho
MyBatis Dynamic SQLの導入で、Java開発を楽にしたい!
# 資料の目的
MyBatis Dynamic SQLの導入により、SQL周りのJava開発を楽にしたい!# MyBatis Dayamic SQLとは?
– SQL文をJavaの関数で書けるようにするMyBatisの機能です– Java上でMyBatisのアノテーション+SQLベタ書きで書かなくなります
– 通常のMyBatis同様、MavenやGradleでインストールできます
# 結論
**メリット**
– Javaの関数で、WHERE、ORDER BY、IN、LIKE、JOIN、AS、DISTINCT、MAXはもちろん、INSERT文、UPDATE文、DELETE文も書けます。if else文、CASE文、サブクエリ文、LIMIT OFFSET文も対応しています。SQL文はJavaの関数で表現できるため、Eclipse等のIDEによる文法チェック機能や一括修正機能の恩恵を受けられ、保守性に優れています
– MyBatis Generatorに対応しており、テーブルやカラムのマッピングは自動生成が可能です
– xmlファイルを作らずに済みます。作って並行して利用する
【Jackson】Json文字列変換時のJsonParseException: Unexpected character (‘X’ (code XX))
## 現象
“`java:java
String jsonString
= “{\n”
+ ” \”data\”: [\n”
+ ” {\n”
+ ” \”id\”: 1,\n”
+ ” \”name\”: \”山田太郎\”,\n”
+ ” },\n”
+ ” {\n”
+ ” \”id\”: 2,\n”
+ ” \”name\”: \”山田次郎\”,\n”
+ ” },\n”
+ ” ],\n”
+ ” \”success\”:
[Google Cloud Speech-to-Text API(V2)] Javaで長時間実行オペレーションをキャンセル・削除する
Cloud Speech-to-Text API V2(Java)を使用して、
長時間実行オペレーションをキャンセル・削除する方法についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Speech-to-Text API(V2)] JavaでSpeech-to-Text APIを使ってみる](https://qiita.com/doran/items/8e4ef896588229c4fed3)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[オペレーションをキャンセル](#1-オペレーションをキャンセル)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[オペレーションを削除](#2-オペレーションを削除)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|##
Eclipse + Java + Gradle の環境で Doma を動かす
## はじめに
この記事では、データベースアクセスフレームワークである [Doma](https://github.com/domaframework/doma) を利用する際の開発環境構築についてノウハウを紹介します。
簡単なサンプルアプリケーションを作りながら解説します。## 前提
### バージョンなど
開発マシンは macOS を想定しますが、Windows と異なるところはないと思います。
IDE、ツール、ライブラリ等のバージョンは以下のとおりです。
– Eclipse IDE for Java Developers 2024-03 (4.31.0)
– Java 17.0.10(Eclipse のデフォルト)
– Gradle 8.1.1(Eclipse で Gradle Project 作成時に利用されるバージョン)
– Doma 2.58.0### Eclipse の仕組みを踏まえた戦略
Eclipse は以下のようなさまざまな設定ファイルを参照して動きます。
– .classpath : どのライブラリのどのバージョンを使うのかといったクラ
SpringAOPによるメソッドの開始・終了ロギング
# はじめに
メソッドの開始と終了のログ情報は、そこまで処理が到達しているのか、そのメソッドでどの位時間が掛かっているのか、など調査する上で非常に重要なポイントとなる。
コーディングルールとしてメソッドの開始・終了時にログを仕込むように決めていたとしても、仕込んでいないメソッドが必ず現れてくる。
そこでSpringAOPを利用して自動的にロギングする仕組みを構築する。:::note warn
SpringFrameworkが介在するメソッドの呼び出しには適用されるが、privateメソッドなど独自に呼び出すメソッドには適用されないことに注意してほしい。
:::## 大まかな手順
1. pom.xmlにAOPを追加する
1. ロギング用のアスペクトオブジェクトを作成する
1. アプリケーションオブジェクトに`@EnableAspectJAutoProxy`アノテーションを追加する## 1. pom.xmlにAOPを追加する
他の依存関係に含まれている場合は追加しなくても動作するが、明示的に記載しておいた方が何を使っているか分かるため良いと思う。
“`xml:pom.xml
[Google Cloud Text-to-Speech API(V1)] Javaでテキストを音声に変換する
Cloud Text-to-Speech API V1(Java)を使用して、
テキストを音声に変換する方法についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Text-to-Speech API(V1)] JavaでText-to-Speech APIを使ってみる](https://qiita.com/doran/items/9edbd7d4ed11c5c4ec5f)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[テキストを変換(同期)](#1-テキストを変換同期)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[長いテキストを変換(非同期)](#2-長いテキストを変換非同期)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|## 1. テキストを変換
Javaで「変数宣言で型推論を利用する」の動作を確認してみた
# 概要
Javaで「変数宣言で型推論を利用する」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/var/index9.html
# 実装
以下のファイルを作成しました。
“`JSample9_1.java
class JSample9_1{
public static void main(String[] args){
var old = 24;
var name = “Yamada”;System.out.println(“年齢:” + old);
System.out.println(“氏名:” + name);
}
}
“`以下のコマンドを実行しました。
“`
$ javac JSample9_1.java
$ java JSample9_1
年齢:24
氏名:Yamada
“`# まとめ
何かの役に立てばと。