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