JavaでIntegerとStringについて
Javaの基本データ型はint、char、boolean、byte、long、double、float、shortの8種類です.Javaはオブジェクト向けのプログラミング言語として、データはJavaでもオブジェクトです.int x=0などの基本データ型で作成されたオブジェクト.ここでのxは値という属性しかなく,他の方法はない(あるいは少ない).これは、データの操作が必要な場合に不便になり、プログラマーは自分で多くのコードを作成してよく使われる機能を実現し、ワークロードとプログラムのサイズを増やす必要があります.
したがって、Javaには、各基本データ型に対応する参照クラス、またはパッケージクラスがあります.例えばintの参照クラスがInteger,charの参照クラスがCharacterである.これらのクラスはJavaのコンパイル環境で事前に書かれたクラスであり,クラスにはすでに大量に書かれており,このデータ型に対する一般的な方法であり,これらの方法は最適化されている.プログラミングでは、これらのクラスでオブジェクトを作成するだけで、対応するメソッドを直接呼び出すことができます.これらのクラスのオブジェクトを作成する際に使用される時間と空間は、基本データ型よりも大きくなり、プログラムの時間的複雑さと空間的複雑さが向上するため、適用時に必要でない場合は、できるだけ基本データ型を使用します.
以下、主にIntegerクラスのいくつかの方法の使用を紹介します.
クラスといえば,まずオブジェクトの構造方法について述べる.Javaの各クラスには、クラスのオブジェクトを作成するときに呼び出す構造方法があります.メソッドにコンストラクションメソッドが書き換えられていない場合、デフォルトのフォーマットは、クラス名オブジェクト名=newクラス名()です.書き換えると、伝達されたパラメータに基づいて対応メソッドが呼び出されます.
Integerクラスでは、2つの構造方法が書き換えられています.1つ目はInteger(int value)で、int値をオブジェクトの値として入力します.この方法は文:Integerオブジェクト名=(int)valueと等価です.この方法は理解しやすいので,例を挙げない.
2つ目の方法はInteger(String)です s)この方法は、
Integer
パラメータによって示されるint値を表すString
オブジェクトを構築する.この文字列は、parseInt
メソッド(基数10の値)と同様にint値に変換される.この方法は、String sに含まれる内容が数値ではない場合、または解析不可能な整数である場合、NumberFormatExceptionを放出する異常を検出する.String s = "0101010";
Integer i = new Integer(s);
System.out.println(i);
結果:101010
String s = "dfadffcfa";
Integer i = new Integer(s);
System.out.println(i);
Exception in thread "main"java.lang.NumberFormatException: For input string: "dfadffcfa" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.
以上のコードから分かるように,この構造方法はtryを用いる必要はない. catchまたはthrowsは、Runtime型の異常であるため、プログラム実行時に仮想機会が自動的に放出されるため、テストします.
次に、最近ファイルの圧縮に使用した方法をいくつか紹介します.
1、parseInt
Integerクラスでは、メソッド名がparseIntのメソッドは2つあり、伝達パラメータが異なる(メソッドのリロード).1つのStrirngのみが入力されます.parseInt(String s)は、1つのStringの文字を10進数解析し、static intを返します.上記の第2の構成方法と同様に、この方法はStringに含まれる文字にも要求され、第1の文字が負の値を表すASCIIマイナス
'-'
('\u002D'
)であってもよいほか、文字列の文字はすべて10進数でなければならない.要求に合致しない場合は、同様に実行中はエラーであり、Runtimeタイプの異常でもあります.具体的な応用は以下のコードを見てくださいString s = "11234516";
int i = Integer.parseInt(s);
System.out.println(i);
出力結果は11234516
String s = "112adf34516";
int i = Integer.parseInt(s);
System.out.println(i);
Exception in thread "main"java.lang.NumberFormatException: For input string: "112adf34516" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source)
もう1つのparseIntはStringとintの2つのパラメータを入力する必要があります.parseInt(String s,int radix)は、2番目のパラメータで指定した基数を使用して、文字列パラメータを記号付き整数に解析します.最初の文字が負の値を表すASCIIマイナス
'-'
('\u002D’
)である場合を除き、文字列の文字はすべて指定された基数の数字である必要があります.これは文字列データを何らかの進数で変換する方法であり、もちろん文字列中の文字が進数の要求を満たすことが前提である.String s = "125ADF";
int i = Integer.parseInt(s,16);
System.out.println(i);
出力結果:1202911
異常状況は展示されなくなった.
文字列を対応する進数の整数に変換する方法もあれば、整数を進数に従って文字列に変換する方法もあります.
toBinaryString、toOctalString、toHexString、toStringはいずれもintを入力する必要があり、そのintの値をそれぞれそのバイナリ、8進数、16進数、10進数の文字列に変換し、最上位は0ではありません.
String s = Integer.toBinaryString(511);
System.out.println(s);
結果:111111111
以上のいくつかの方法は,Huffman符号化の圧縮に用いるIntegerの方法であり,実用価値がある.
これらの基本データ型の参照タイプに加えて、私たちが最もよく接触するデータ操作に関するクラスはStringクラスです.String型のデータの場合、最も一般的な操作は、文字またはサブ文字列のインデックスビットを検索することです.これはStringクラスには多くの方法があります.Indexof(int char)は、Stringで文字が初めて現れるインデックスビットを返し、Indexof(int char,int fromIndex)はfromIndexビットから初めてcharが現れるインデックスビットを返します.LastIndexOf(int char)とlastIndexOf(int char,int fromIndex)は正反対で、末尾から最初に現れるインデックスビットを返します.
String s = "adlfldcidfkasdcieij";
int index = s.indexOf("l");
int last = s.lastIndexOf("l");
System.out.println("index is :"+index);
System.out.println("last is :"+last);
結果:index is:2 last is :4
またよく使われる操作は、文字列の一部を切り取って新しい文字列を得ることです.Stringクラスにはsubstringの方法があり,同様に重荷現象も存在する.substring(int beginIndexとsubstring(int) beginIndex, int endIndex)はいずれも元の文字列のサブストリングであるが,1つ目はbeginIndexから元の文字列の末尾,2つ目はbeginIndexからendIndex−1ビットのサブストリングである.ここで注意したいのは、substringの方法は頭を含んで尾を含まないことです!
String s = "adlfldcidfkasdcieij";
String snew = s.substring(5);
String str = s.substring(5,s.length()-1);
System.out.println("snew is :"+snew);
System.out.println("str is :"+str);
結果:snew is:dcidfkasdcieij str is :dcidfkasdciei
2つのサブストリングの違いに注意してください.
以上は私が圧縮の過程で関わったいくつかのString類とInteger類の中のいくつかの方法の使用について、避けられないのは少し問題があって、指摘を歓迎します.