2011-07-12 9 views
3

今朝はシンプルなものですが、問題が発生してコードが見つからないようです。私は数値の16進表現を作成して、16進文字列の最後の4文字を保存してから整数に戻したいと考えています。アンドロイドの文字列の最後の4文字を保存しています

変換するコードを以下に示します。

int in2 = new Integer(mycard.resourceid.toString()); 
String hex = Integer.toHexString(in2); 

誰かが私が最も感謝だろう正しい方向に私を微調整することができれば。

int in3 = new Integer(hex.length()); 
int in4 = new Integer (in3 - 4); 
String mystring = hex.subString(in4, in3); 
+0

コードの書式設定に関する簡単な注意:コードを書式設定するには、4文字でインデントする(またはエディタで '{} 'ボタンを使用するだけで十分です)。 4の倍数でインデントした場合、ページ全体の途中で終了し、最終的には水平スクロールバーを起動します。 – razlebe

+0

申し訳ありませんが、コード自体からインデントを保持して、今修正しました。あなたはそれが文字列をどのように使用しているかを見ることはできませんか? – chris

答えて

7

あなただけのナッジをしたい場合は、Stringクラスのsubstring方法を探します。

EDIT:OPのフォローに応じて、いくつかのサンプルコード:

public class Test { 
    public static void main(String[] args) throws Exception { 
     Integer in2 = 897387483; 
     String hex = Integer.toHexString(in2); 
     System.out.println(hex); 
     System.out.println(hex.substring(hex.length()-4, hex.length())); 
    } 
} 
+0

素敵な、今それを行うでしょう - ありがとう – chris

+0

それは私が文字列を使用しようとしていると言って小さな問題を抱えています。オリジナルを更新すると、どのように文字列を使用しているのかわかりません。 – chris

+0

@chris答えにサンプルコードを追加しました。それはそのまま動作します。あなたが持っているものと比較できるかどうかを見てください。私は 'substring'を大文字にしたと思います。 –

0
String s = mycard.resourcdeid.toString(); 
int in2 = Integer.parseInt(s.substring(s.length() - 4, s.length()); 
+0

こんにちは、私はアンドロイドのnoobyです、なぜ私のエラーがあるのか​​理解したいと思って申し訳ありません。 16進文字は9f8f等で保存したいのですが、fのような文字でエラーを起こさないintとして保存しませんか? – chris

+0

これをintとして解析しないでください。私は問題が何であるか理解していない。 –

0

(新しい整数(intValueYouLikeToConvert &は0xffff))toHexString()をしなければならない

以前のすべての例が行うトリック考慮に入れない場合、結果の文字列は4文字より短くなる可能性があります

0

あなたの16進文字列は次のようになります:String hex = oxFFFFFF 部分文字列を取るhex = hex.subString(2);

関連する問題