android程式設計之ip2id程式例項

android程式設計之ip2id程式例項

本文例項講述了android程式設計之ip2id程式。分享給大家供大家參考。具體分析如下:

一、說明:

公司一個專案中需要給一系列網路裝置分配id號,id是根據ip算出來的,演算法如下:

id共3個位元組,高位元組:從機號:1-31;後兩個位元組為ip號的最後兩個位元組.如ip為192.168.0.240的一臺裝置從機號為31.則id號為31,00,240換算成十進位制為2031856.

二、原始碼:


package com.id2ip; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.*; 
import android.view.*; 
public class id2ip extends Activity { 
/** Called when the activity is first created. */ 
private TextView text; 
private Button button; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
//獲得文字框ID 
text = (TextView)findViewById(R.id.editText1); 
//獲得按鈕ID 
button = (Button)findViewById(R.id.button1); 
//過載按鍵監聽方法 
button.setOnClickListener(new Button.OnClickListener() 
{ 
@Override 
public void onClick(View v) 
{ 
//獲得輸入框文字 
CharSequence str = text.getText(); 
do 
{ 
//判斷輸入是否有效 
//如果輸入位數不為8位,則無效 
if (str.length() != 8) 
{ 
text.setText("輸入位數必須為8位"); 
break; 
} 
//輸入的字元不為數字,則無效 
int i = 0; 
for (i = 0;i < 8;i  ) 
{ 
if ((str.charAt(i) < '0') || (str.charAt(i) > '9')) 
{ 
break; 
} 
} 
if (i < 8) 
{ 
text.setText("輸入字元必須為數字"); 
break; 
} 
String str_temp = str.toString(); 
//轉換為數字 
long num = Long.parseLong(str_temp); 
//ip2id 
short slave_num = (short)(num / 1000000); 
num = num % 1000000; 
short ip1 = (short)(num / 1000); 
num = num % 1000; 
short ip0 = (short)num; 
long num_temp = ip0; 
num_temp |= ip1 << 8; 
num_temp |= slave_num << 16; 
str_temp = Long.toString(num_temp); 
str = str_temp; 
text.setText(str); 
}while (false); 
} 
}); 
} 
}

三、注意:

程式中需要注意的地方有3處:

① 字串轉數字,可以用方法Long.parseLong();

② 在android中常用的捕捉空間字串的類是CharSequence,而java中常用的字串類為String,則需要轉換.

1.CharSequence轉String


CharSequence str;
String str_temp = str.toString();

2.String轉CharSequence這個直接等於就可以了:


str = str_temp;

③ java中沒有無符號即unsigned型別,所有型別都是帶符號的

希望本文所述對大家的Android程式設計有所幫助。

您可能感興趣的文章:

Android程式設計之頁面切換測試例項Android程式設計之藍芽測試例項android程式設計之xml檔案讀取和寫入方法Android觀察者模式例項分析Android定時器和Handler用法例項分析Android中使用tcpdump、wireshark進行抓包並分析技術介紹Android許可權機制帶來的一些安全問題介紹