アフィリエイト広告を利用しています
最新記事
カテゴリアーカイブ

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2019年06月17日

replaceとreplaceAll

文字列の置換を行うことができる
「replace(oldChar, newChar)」「replaceAll(regex, replacement)」。

replaceは第一引数に指定した文字を全て第二引数に指定した文字に置換します。
replaceAllは第一引数に指定した正規表現に一致した文字列を全て第二引数の文字列に置換します。
replaceFirstは第一引数に一致した文字のうち、最初のものだけを第二引数の文字に置換します。

class Demo extends Thread{
 public static void main(String[] args) {

  String s ="ねぎ・なすび・えのきだけ";

    System.out.println(s);
    System.out.println(s.replace("・", "と"));
    System.out.println(s.replaceAll("[^あ-ん]", "と"));
    System.out.println(s.replaceFirst("[^あ-ん]", "と"));
 }
}

===== 実行結果 =====

ねぎ・なすび・えのきだけ
ねぎとなすびとえのきだけ
ねぎとなすびとえのきだけ
ねぎとなすび・えのきだけ
================

正規表現の[^あ-ん]は「あ」から「ん」の範囲外の文字という意味。
[あ-ん]とすると「あ」から「ん」の範囲にある文字という意味になります。

地球の末路!?




2019年06月07日

コンストラクタから別のコンストラクタを呼ぶ

コンストラクタから別のコンストラクタを呼ぶ時には「this(引数)」を使います。
しかし、記述ルールがあるので、どこに書いてもいいというわけではないです。
「this()」は必ず、コンストラクタ内の先頭に書く!これが記述ルール。

class Demo {

 String s;
 int i;

 public Demo() {
  this.s ="引数なし";
  this.i = 1;
  System.out.println("コンストラクタ" + i + "は" + s + "のコンストラクタ。");
 }

 public Demo(String s, int i) {
  this();//引数なしのコンストラクタを呼び出すためのthisです。

  this.s = s;
  this.i = i;
  System.out.println("コンストラクタ" + i + "は" + s + "のコンストラクタ。");
 }

 public static void main(String[] args) {
  new Demo("引数あり", 2);
 }
}

引数ありのコンストラクタの先頭に引数なしのthis()を書いて
引数なしのコンストラクタを呼び出しています。


=============== 実行結果 ===============

コンストラクタ1は引数なしのコンストラクタ。
コンストラクタ2は引数ありのコンストラクタ。

========================================


引数なしのコンストラクタから引数ありのコンストラクタを
呼び出す時には、this()に引数を持たせます。


class Demo {

 String s;
 int i;

 public Demo() {
  this("引数あり", 2);//引数ありのコンストラクタを呼び出すためのthisです。

  this.s ="引数なし";
  this.i = 1;
  System.out.println("コンストラクタ" + i + "は" + s + "のコンストラクタ。");
 }

 public Demo(String s, int i) {
  this.s = s;
  this.i = i;
  System.out.println("コンストラクタ" + i + "は" + s + "のコンストラクタ。");
 }

 public static void main(String[] args) {
  new Demo();
 }
}


=============== 実行結果 ===============

コンストラクタ2は引数ありのコンストラクタ。
コンストラクタ1は引数なしのコンストラクタ。

========================================


newしてインスタンスを生成し、コンストラクタを呼び出します。
呼び出したコンストラクタ内の先頭にthis()が記述されていたら
this()で呼び出しているコンストラクタ内の処理を先に行われ
その後、呼び出し元のコンストラクタの処理を行われます。

地球の末路!?




2019年05月16日

スレッドに名前を設定&取得

「setName()」でスレッドに名前を設定して
「Thread.currentThread().getName()」で名前を取得しています。

class Demo {
 public static void main(String[] args) {

  Sample s1 = new Sample();
  s1.setName("みかん"); //スレッドに名前をセット

  Sample s2 = new Sample();
  s2.setName("アボカド"); //スレッドに名前をセット

  s1.start();
  s2.start();

 }
}

class Sample extends Thread {

 public void run() {
  for (int i = 0; i < 5; i++) {
   System.out.println(Thread.currentThread().getName() + ":" + i + "個");
  }
 }
}


===== 実行結果 =====

みかん:0個
アボカド:0個
アボカド:1個
みかん:1個
アボカド:2個
みかん:2個
アボカド:3個
みかん:3個
アボカド:4個
みかん:4個

===================

実行結果は実行するたびに変わります。

地球の末路!?




2019年05月15日

Java 三項演算子

class Demo {
 public static void main(String[] args) {

   int x;

   int i = 10;
   int j = 5;

   if (i > j) {
    x = j;
System.out.println(x);
   } else {
    x = i;
    System.out.println(x);
}

    //三項演算子
    x = (i > j) ? i : j;
System.out.println(x);
 }
}


===== 実行結果 =====

10
10

====================

三項演算子の構文は「条件式 ? 値1 : 値2;」とこんな感じ。
条件式を満たしtrueになった時には値1に
条件式を満たさずfalseとなった場合には値2になります。

地球の末路!?




2019年05月08日

appendで文字列バッファに文字列を追加

StringBuilderクラスのappendは文字列バッファに指定した文字を
文字列バッファの末尾に追加するためのメソッド。
このメソッドを使うと、文字の末尾に文字を追加することができるってことです。

class Demo {
 public static void main(String[] args) {

  StringBuilder sb = new StringBuilder("Java");
  System.out.println(sb);

  sb.append("プログラミング");
  System.out.println(sb);

  char[] c = { '2', '0', '1', '9' };
  sb.append(c);
  System.out.println(sb);
 }

}

===== 実行結果 =====

Java
Javaプログラミング
Javaプログラミング2019

====================


追加した文字を削除したい時にはdelete(start, end)で
削除したい範囲をしていします。
ちなみに、削除はendに指定したインデックスの1文字前までです。
インデックスは0から始まるので1文字目のインデックスは0になります。


class Demo {
 public static void main(String[] args) {

  StringBuilder sb = new StringBuilder("Java");
  System.out.println(sb);

  sb.append("プログラミング");
  System.out.println(sb);

  char[] c = { '2', '0', '1', '9' };
  sb.append(c);
  System.out.println(sb);

  //5文字目から11文字目まで削除する場合
  System.out.println(sb.delete(4, 11));
 }

}

===== 実行結果 =====

Java
Javaプログラミング
Javaプログラミング2019
Java2019

====================


一文字だけ削除したい場合にはdeleteCharAt(index)メソッドの
indexに削除したい文字のインデックスを指定します。

class Demo {
 public static void main(String[] args) {

  StringBuilder sb = new StringBuilder("Java");
  System.out.println(sb);

  sb.append("プログラミング");
  System.out.println(sb);

  char[] c = { '2', '0', '1', '9' };
  sb.append(c);
  System.out.println(sb);

  //1文字目を削除する場合
  System.out.println(sb.deleteCharAt(0));
 }

}

===== 実行結果 =====

Java
Javaプログラミング
Javaプログラミング2019
avaプログラミング2019

====================

地球の末路!?




2019年04月14日

for文をdo-while文に書き換えてみよう!答え

下記のfor文をdo-while文に書き換えてみよう!の答え。

class Demo {
 public static void main(String[] args) {

  int i = 0;

  do {
   System.out.print(i + " ");
   i++;
  }while(i < 10);
 }
}

===== 実行結果 =====

0 1 2 3 4 5 6 7 8 9

====================

地球の末路!?




2019年04月13日

for文をdo-while文に書き換えてみよう!

下記のfor文をdo-while文に書き換えてみよう!答えは次回に。

class Demo {
 public static void main(String[] args) {

  for(int i = 0; i < 10; i++) {
   System.out.print(i + " ");
  }
 }
}

===== 実行結果 =====

0 1 2 3 4 5 6 7 8 9

====================

地球の末路!?




2019年04月12日

for文をwhile文に書き換えてみよう!答え

for文をwhile文に書き換えてみよう!の答え。

class Demo {
 public static void main(String[] args) {

  int i = 0;

  while(i < 10) {
   System.out.print(i + " ");
   i++;
  }
 }
}

===== 実行結果 =====

0 1 2 3 4 5 6 7 8 9

====================

地球の末路!?




2019年04月11日

for文をwhile文に書き換えてみよう!

for文で書いたものはwhile文でも書くことができます。
下記のfor文をwhile文に書き換えてみよう!答えは次回に。

class Demo {
 public static void main(String[] args) {

  for(int i = 0; i < 10; i++) {
   System.out.print(i + " ");
  }
 }
}

===== 実行結果 =====

0 1 2 3 4 5 6 7 8 9

====================

地球の末路!?




2019年04月07日

Javaスレッド(Runnableを実装)

Runnableを実装したしたスレッドです。
Threadを継承した時とRunnableを実装した時は
スレッドの実行のさせ方がちょっとだけ違います。

まず、Runnableを実装しているクラスのインスタンスを生成します。
次に、Threadのインスタンスを生成したら、Threadのインスタンスの引数に
Runnableのインスタンスを渡すことでスレッドを実行することができます。

Threadを継承しているクラスは「sleep();」
Threadを継承していないクラスは「Thread.sleep();」とします。
「sleep()」使用する時には「try{}catch(){}」で囲む必要があります。

class Sample implements Runnable {

 private String name;

  public Sample(String n) {
   name = n;
  }

  public void run() {

   for (int i = 0; i < 10; i++) {
    try {
 Thread.sleep(1000);
 System.out.println(name + "の処理をしています。");
} catch (InterruptedException e) {
 e.printStackTrace();
    }
  }
 }
}

class Demo {
 public static void main(String[] args) {

  Sample s = new Sample("Sample");
  Thread t = new Thread(s);
  t.start();

   for (int i = 0; i < 5; i++) {
    try {
     Thread.sleep(2000);
     System.out.println("mainの処理をしています。");
    } catch (InterruptedException e) {
     e.printStackTrace();
    }
   }
 }
}


===== 実行結果 =====

Sampleの処理をしています。
Sampleの処理をしています。
mainの処理をしています。
Sampleの処理をしています。
Sampleの処理をしています。
mainの処理をしています。
Sampleの処理をしています。
mainの処理をしています。
mainの処理をしています。
mainの処理をしています。

==================

地球の末路!?




検索


















×

この広告は30日以上新しい記事の更新がないブログに表示されております。