Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

Javaのデータ型と算術子

Last updated at Posted at 2022-04-21

Javaの基本型(プリミティブ型)

オブジェクトではない基本的なデータ型がいくつか存在し、プリミティブデータタイプという。

整数型

変数の型 容量 数値の範囲
byte 8bit -128 から 127 まで
short 16bit -32,768 から 32,767 まで
int 32bit -2,147,483,648 から 2,147,483,647 まで
long 64bit -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 まで

int型同士の計算は結果もint型になり、double型同士の計算は、結果もdouble型になることに注意。
また、int型とdouble型の計算では結果はdouble型になる。

浮動小数点数型

変数の型 メモリ容量 数値の精度
float 4バイト
double 8バイト

float型では、代入した値の後にfをつける

文字型

変数の型 メモリ容量 数値の範囲
char 2バイト Unicode

2バイトの文字型で文字を扱うために、ではエンコーディングルールとしてUTF-16を用いる。

真偽型

変数の型 数値の範囲 既定値
boolean ture or false false

型キャスト

データ型を変換することを型キャストという。

(type)var
typeデータ型
var変数名

ラッパークラス

基本データ型の値をオブジェクトとして扱うことができるようになる。
例えば、int型がプリミティブなデータ型である、 というのは、そのデータ型を保持するだけのデータを確保して、それが変数を通して参照できるということである。
しかし場合によっては、同じ整数型を扱う場合でも、動的にデータ領域を確保して値を割り当てるなどの操作が必要なる場合もある。
このとき、Javaのランタイムは、元々プリミティブ型のint型のデータを、Integerという名前のクラスのオブジェクトに置き換えて扱うことがある。
ラッパークラスでは、参照渡し(メモの場所を渡すイメージ)ができ、空の値(null)を代入できる。

ラッパークラス 基本型
Boolean boolean
Byte byte
Character char
Double double
Float float
Integer int
Long long
Short short

算術演算・比較演算・論地演算・シフト演算子

  • 算術演算子
演算子 役割
+ 足し算
- 引き算
* 掛け算
/ 割り算
% 割り算の余り
++ 1だけインクリメント(加算)
-- 1だけデクリメント(減算)
+= 右辺を足して代入(代入演算子)

累乗は、for文で回すか、Mathクラスのpowメソッドで計算できる。

累乗(for文)
public class Main {
  public static void main(String args[]){
    int bottom = 3;   // 底
    int index = 2;    // 指数
    int result = 1;   // 2乗の計算の解
 
    System.out.print(bottom + " の " + index + "乗は ");
  
  // index回だけbottomをresultにかける
    for(int i = 1; i <= index; i++) {
      result *= bottom;
    }
 
    System.out.println(result + " です。");
  }
}
結果
3 2乗は 9 です
累乗(powメソッド)
import java.lang.Math;
 
public class Main {
  public static void main(String args[]){
    double bottom = 3;   // 底
    double index = 2;    // 指数
 
    double result = Math.pow(bottom, index);
    System.out.println(bottom + " の " + index + "乗は " + result + " です。");
  }
}
結果
3.0  2.0乗は 9.0 です
  • 比較演算子
演算子 内容
== 等しい
!= 等しくない
> より大きい
>= 以上
< 未満
<= 以下
  • 論理演算子
演算子 意味
& AND 論理積
^ XOR 排他的論理和
| AND 論理和
&& 条件のAND
|| 条件のOR
! 論理否定
  • シフト演算
    2進数において桁をシフトする演算
演算子 意味
<< 左シフト
>> 右シフト (符号拡張)
>>> 右シフト (ゼロ拡張)

文字列型

文字列を表すには、標準ライブラリとして用意されているStringクラスを用いる。

String var = "こんにちわ";
String var = new String(こんにちわ");

文字列が同じかどうかの判定

equalsメソッドを用いる。

var1.equals(var2)

String型などの参照型の場合に、”==”演算子で比較すると、参照先が同じかどうかを比較することになり、参照先の値は比較できないことに注意。

文字列のアルファベット順の比較

compareToメソッドを用いる

var1.compareTo(var2)
var1.compareToIgnoreCase(var2) //大文字小文字を区別しない場合

>>
var1の方が先なら-後なら+の値が返ってくる

文字列の合成

+で加えることができる。

文字列の長さを調べる

lengthメソッドを用いる。

var1.length()

エスケープシーケンス

エスケープシーケンス 説明
\t 水平タブ文字
\b バックスペース
\n 改行
\r キャリッジリターン
\f 書式送り (Form Feed)
' 引用符
" 二重引用符
|バックスラッシュ
\OOO 8進数の文字コード
\uXXXX 16進数の文字コード
Windows環境では \ は ¥ と表示される。

特定の文字列が含まれるかの判定

indexOfメソッドを用いると、ある文字列の中で、指定した文字列が最初に出現する位置を返す。指定した文字列が含まれていない場合は、-1を返す。

var1.indexOf(var2)

文字列と数値の変換

数値を文字列に変換するときは、valueOfメソッド、toStringメソッド、または+を用いる。
int型はプリミティブ型のため、そのままではメソッドを使うことができず、ラッパークラスであるIntegerクラスからメソッドを呼び出す必要がある。
またJavaでは文字列とそれ以外を加えると、全体が文字列と見なされる。

int number =100;
String text = String.valueOf(number);
または
String text = Integer.toString(number);
または
String text = "" + number;

文字列を数値に変換するときは、parseIntメソッドを用いる。double型の場合はparseDoubleメソッドを用いる。

String text = "100";
int number = Integer.parseInt(text);
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?