for(int I = 0;我& amplt;str . length();i++)
{
char temp _ char = str . charat(I);
//將字符轉換為數字的方法1
int temp _ int = temp _ char-' 0 ';
//將字符轉換為數字的方法2
int temp _ int = integer . parse int(string . value of(temp _ char));
}
第壹種方法:通過charAt(i),將字符串的每壹位都變成char類型,然後從當前字符中減去字符0(temp_char-'0 '),得到當前字符的int值。
第二種方法:把字符再轉換成字符串,再轉換成int。
2、將字符串拆分成壹個位。
第壹種方法:Charat (I)循環後;
註意:charAt(i)獲取字符串對應的每個字符,但是不能直接轉換成int,還是壹個ASCII值。
第二種方法:char[]temp = str . tochararray();
註意:char[]中的內容不是字符串的每個字符,而是每個字符的ASCII值。
詳情如下:
包cjl
導入Java . util . scanner;
/**
壹種壹維碼是ean13,是壹系列13的數字。13位是校驗碼,用來校驗前12位是否正確。
驗證方法如下:
1和前12位,從左開始,所有奇數相加得到壹個數A,所有偶數相加得到壹個數b。
2.將數字b乘以3,再加到a上,得到數字c。
3.用10減去數字C的個位數。如果結果不是10,校驗碼就是結果本身。如果是10,校驗碼為0。
請在控制臺中隨意輸入壹個12的數字,然後輸出校驗碼。
作者ff
/
公共類校驗碼{
公共void校驗碼(字符串str)
{
int checkCode = 0;
int a = 0;//奇數位的和
int b = 0;//偶數數字之和
for(int I = 0;我& amplt;str . length();i++)
{
char temp _ char = str . charat(I);
//將字符轉換為數字的方法1
int temp _ int = temp _ char-' 0 ';
//將字符轉換為數字的方法2
//int temp _ int = integer . parse int(string . value of(temp _ char));
//system . out . println(" temp _ char = "+temp _ char ");
//system . out . println(" temp _ _ int = "+temp _ int);
If((i+1)%2==0)//偶數
{
b+ =(int)temp _ int;
}
Else//奇數位
{
a = a+(int)temp _ int;
}
}
int c = a+b * 3;
int c _ GW = c % 10;
int d = 10-c _ GW;
//system . out . println(" a = "+a+" b = "+b+" c = "+c+" c _ GW = "+c _ GW+" d = "+d);
如果(d==10)
{
checkCode = 0;
}
其他
{
checkCode = d;
}
system . out . println(" check code = "+check code ");
}
公共void輸入()
{
while(true){
Scanner scanner =新掃描儀(system . in);
System.out.println("請輸入壹個12位的數字。。。。。。");
string str = scanner . nextline();
if((str . length()= = 12)& amp;& amp(字符串匹配("[0-9]+"))
{
校驗碼;
打破;
}
}
}
/**
param args
/
公共靜態void main(String[]args){
CheckCode codeVo = new CheckCode();
科德沃。input();
}
}
運行結果:
請輸入壹個12的數字。。。。。。
111111111111
校驗碼=6
擴展數據:
Char是壹種基本的數據類型,可以容納計算機編程語言(C、c++、java、VFP等)中的單個字符。).
Char是壹種定義字符變量(單個或字符串)的數據類型。
比如int是整形數據,int a = 3;這裏int是類型,a是整型變量,3是賦值;
char s = ' AChar是字符類型,S是字符變量,A賦給變量S;
char s[]="c程序";Char是字符類型,s[]是字符數組,“c程序”是賦給數組的值。