Niukeブラッシングノート-プログラミング初心者のための入門トレーニング(簡単な1)

BC3-耐性は素晴らしい

public class Main{
    
    
    public static void main(String[] args){
    
    
        System.out.println("The size of short is " + Short.SIZE / 8 + " bytes.");
        System.out.println("The size of int is " + Integer.SIZE / 8 + " bytes.");
        System.out.println("The size of long is " + Long.SIZE / 8 + " bytes.");
        System.out.println("The size of long long is " + Long.SIZE / 8 + " bytes.");
    }
}

XXX.SIZE:メモリ内のデータ型が占めるスペースのサイズ

BC7-ショートバイナリ

public class Main{
    
    
    public static void main(String[] args){
    
    
        int rem[] = new int[10];
        String r[] = new String[10];
        int num=1234;
        int len1=0,len2=0;
        int i;
        for(i=0;num/8>0;i++){
    
    
            rem[i]=num%8;
            num = num/8;
            len1++;
        }
        rem[len1]=num;
        System.out.print("0");
        for(i=len1;i>=0;i--){
    
    
            System.out.print(rem[i]);
        }
        System.out.print(" ");
        num=1234;
        for(i=0;num/16>0;i++){
    
    
            rem[i]=num%16;
            num = num/16;
            len2++;
        }
        rem[len2]=num;
        for(i=len2;i>=0;i--){
    
    
            if(rem[i]<10) r[i]=Integer.toString(rem[i]);
            else if(rem[i]==10) r[i]="A";
            else if(rem[i]==11) r[i]="B";
            else if(rem[i]==12) r[i]="C";
            else if(rem[i]==13) r[i]="D";
            else if(rem[i]==14) r[i]="E";
            else r[i]="F";
        }
        System.out.print("0X");
        for(i=len2;i>=0;i--){
    
    
            System.out.print(r[i]);
        }
    }
}

APIを知らなくても、数学的な方法を使用して8(16)を除算し、余りを取り、次の値を取得します。整数から文字列Integer.toString(num)またはString.valueOf(num)

他の人のコードを学ぶ:

回答1:printfを使用して16進変換を実現します

public class Main
{
    
    
    public static void main(String[] args)
    {
    
    
        System.out.printf("0"+"%o",1234);
        System.out.printf(" 0X"+"%X",1234);
    }
}

分析:

  • 「%d」は、10進整数として出力することを意味します
  • 「%o」は8進形式での出力を意味します
  • 「%x」は16進数での出力を意味します
  • 「%X」は16進数で出力することを意味し、文字(A、B、C、D、E、F)を大文字に変更します
  • 「%e」は、科学的記数法で出力浮動小数点数を意味します
  • 「%E」は、科学的記数法で浮動小数点数を出力し、eを大文字にすることを意味します
  • 「%F」は小数点以下の浮動小数点数として出力することを意味し、「%f」の間に「.n」を追加すると、出力時に小数点以下n桁を保持することを意味します。

回答2:整数を使用して16進変換を実現します

public class Main
{
    
    
  public static void main(String[] args)
  {
    
    
      int i=1234;
      System.out.println("0"+Integer.toOctalString(i)+" 0X"+Integer.toHexString(i).toUpperCase());
  }
}

分析:Integerクラスのメソッド

  • Integer.toBinaryString()は、10進数を2進数に変換できます
  • Integer.toOctalString()は、10進数を8進数に変換できます
  • Integer.toHexString()は、10進数を16進数に変換できます
  • Integer.valueOf(s、radix)
    最初のパラメーターを2番目のパラメーターで指定された基数で表される符号付き整数として解釈します
    。sを基数の形式で10進数に変換します。
  • toUpperCaseは、大文字に変換することを意味します
  • toLowerCaseは、小文字に変換することを意味します

回答3:BigIntegerを使用して16進変換を実現します

import java.math.BigInteger;
public class Main
{
    
    
  public static void main(String[] args)
  {
    
    
      System.out.println("0" + change("1234",10,8) + " 0X" + change("1234",10,16));
  }
  /**
   * number   要转换的数   
   * from     原数的进制    
   * to       要转换成的进制
   */
  private static String change(String number, int from, int to)
  {
    
    
      String str = new BigInteger(number, from).toString(to);
      return str.toUpperCase();
  }
}

分析:

  • change(文字列番号、int from、int to)
  • 変換する数値
  • 元の番号のベースから
  • に変換されるベースに

BC8-16進数から10進数

public class Main{
    public static void main(String[] args){
        String hex = "ABCDEF";
        int s = Integer.parseInt(hex,16);
        System.out.printf("%15d",s);
    }
}

1.integer.parseInt(string s、int radix):

パラメータ:
s-分析する整数表現を含む文字列。
基数-sを分析するときに使用される基数。基数が省略されている場合、基数は10(基数)です。
戻り値:
指定された基数を使用して文字列パラメータで表される整数。スロー

NumberFormatException-文字列に解析可能なintが含まれていない場合

2.System.out.printf();は、出力幅を制御し、左右に揃えることができます

System.out.printf("%f",a);浮動小数点数の出力
System.out.printf("%+d",b);
出力番号は符号付きです。
System.out.printf("%-3d",b);
左揃えの入力(デフォルトでは右揃え)。
そうである場合は
System.out.printf("%-d",b);
、エラーが表示されることに注意してください:java.util.MissingFormatWidthException、左揃えには指定された長さが必要です。それ以外の場合。次のステートメントは左揃えです。整列された出力も長さを指定する必要があります。一部の参照資料はここで宣言されていないため、出力エラーが発生します
System.out.printf("%+-6d",b);
。符号付きの出力と符号付きの左寄せ
System.out.printf("%+9.5d",b);
出力、および記号が占める長さ、9は出力の長さ、5は小数点を表し
System.out.printf("%s",s);
ます文字列として出力される桁数
System.out.printf("%d,%s,%f",b,s,a);
複数の変数を出力できます

BC9の戻り値-printf

public class Main{
    
    
    public static void main(String[] args){
    
    
        System.out.println("Hello world!");
        System.out.println("Hello world!".length());
    }
}

したがって、printfの戻り値は、印刷された文字列の長さです。

BC11-学生の基本情報の入力と出力

import java.util.Scanner;
public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner s = new Scanner(System.in);
        String[] a = s.nextLine().split("[;,]");
        int id = Integer.parseInt(a[0]);
        double s1 = Double.parseDouble(a[1]);
        double s2 = Double.parseDouble(a[2]);
        double s3 = Double.parseDouble(a[3]);
        System.out.print("The each subject score of  No. " + id + " is " + String.format("%.2f", s1) + ", " + String.format("%.2f", s2) + ", " + String.format("%.2f", s3) + ".");
    }
}

split()メソッドは、指定された正規表現の一致に基づいて文字列を分割します。

注:。、$、|、*などのエスケープ文字は\とともに追加する必要があります。

注:複数の区切り文字の場合、|をハイフンとして使用できます。

構文:public String [] split(String regex、int limit)
パラメーター:regex-正規表現の区切り文字。制限-分割するコピーの数。

戻り値:文字列配列。

例えば:

        System.out.println("");
        System.out.println("- 分隔符设置分割份数返回值 :" );
        for (String retval: str.split("-", 2)){
            System.out.println(retval);
        }

出力結果:

       - 分隔符设置分割份数返回值 :
       Welcome
       to-Runoob

おすすめ

転載: blog.csdn.net/qq_41536271/article/details/112093953