欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何將char類型的數(shù)字字符轉(zhuǎn)換成int類型問題

 更新時間:2022年12月23日 08:48:30   作者:幸運草鈴蘭  
這篇文章主要介紹了如何將char類型的數(shù)字字符轉(zhuǎn)換成int類型問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

將char類型的數(shù)字字符轉(zhuǎn)換成int類型

近來面試遇到一個問題,通過控制臺輸入一個12位的數(shù)字,然后進行一些計算,然后被困在如何把char類型的數(shù)字轉(zhuǎn)換成int類型。

通過搜索,找到兩個解決辦法。

1、把char型轉(zhuǎn)換成int類型

?for(int i = 0;i<str.length();i++)
?? ?{
?? ? ? ?char temp_char = str.charAt(i);
?? ? ? ?//把字符轉(zhuǎn)換成數(shù)字方法一
?? ? ? int temp_int = temp_char-'0';
?? ? ? //把字符轉(zhuǎn)換成數(shù)字方法二
?? ? ? int temp_int = Integer.parseInt(String.valueOf(temp_char));
?
? ? ? }

第一種辦法:通過charAt(i),把字符串的每位變成char型,然后用當前字符減去字符0 (temp_char-'0'),得到當前字符的int值。

第二種辦法:把字符再轉(zhuǎn)成字符串,然后再強制轉(zhuǎn)換成int型。

2、把字符串拆分成一位一位的

第一種方法:循環(huán)后charAt(i);

注意:charAt(i)得到的是字符串對應(yīng)的每位字符,可是不能直接轉(zhuǎn)成int,轉(zhuǎn)成int依然是ASCII值。

第二種方法:char[] temp = str.toCharArray();  

注意:char[]里的內(nèi)容不是字符串的每位字符,而是每位字符的ASCII值。

具體面試題如下:

package cjl;
?
import java.util.Scanner;
?
/**
?* 一維碼有一種編碼是ean13,是一串13位數(shù)字。其中第13位是校驗碼,作用是校驗前面12個數(shù)字是否正確。
?* 校驗方法如下:
?* 1、前12位數(shù)字從左起,將所有的奇數(shù)位相加得出一個數(shù)a,將所有的偶數(shù)位相加得出一個數(shù)b
?* 2、將數(shù)b乘以3再與a相加得到數(shù)c
?* 3、用10減去數(shù)c的個位數(shù),如果結(jié)果不為10則校驗碼為結(jié)果本身,如果為10則校驗碼為0
?* 請在控制臺任意輸入一個12位數(shù)字,然后輸出校驗碼
?* @author ff
?*
?*/
?
?
public class CheckCode {
?? ?
?? ?public void checkCode(String str)
?? ?{
?? ??? ?int checkCode = 0;
?? ??? ??? ?int a = 0;//奇數(shù)位的和
?? ??? ??? ?int b = 0;//偶數(shù)位的和
?? ??? ??? ?for(int i = 0;i<str.length();i++)
?? ??? ??? ?{
?? ??? ??? ??? ?char temp_char = str.charAt(i);
?? ??? ??? ??? ?//把字符轉(zhuǎn)換成數(shù)字方法一
?? ??? ??? ??? ?int temp_int = temp_char-'0';
?? ??? ??? ??? ?//把字符轉(zhuǎn)換成數(shù)字方法二
?? ??? ??? ??? ?//int temp_int = Integer.parseInt(String.valueOf(temp_char));
?? ??? ??? ??? ?//System.out.println("temp_char = "+temp_char);
?? ??? ??? ??? ?//System.out.println("temp__int = "+temp_int);
?? ??? ??? ??? ?if((i+1)%2==0)//偶數(shù)位
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?b+=(int)temp_int;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else //奇數(shù)位
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?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);
?? ??? ??? ?if(d==10)
?? ??? ??? ?{
?? ??? ??? ??? ?checkCode= 0;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?checkCode= d;
?? ??? ??? ?}
?? ??? ?
?? ??? ??? ?System.out.println("checkCode = "+checkCode);
?? ?}
?? ?
?? ?public void Input()
?? ?{
?? ??? ?while (true) {
?? ??? ??? ?Scanner scanner = new Scanner(System.in);
?? ??? ??? ?System.out.println("請輸入一個12位的數(shù)字。。。。。。");
?? ??? ??? ?String str = scanner.nextLine();
?? ??? ??? ?if((str.length()==12)&&(str.matches("[0-9]+")))
?? ??? ??? ?{
?? ??? ??? ??? ?checkCode(str);
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?
?? ?/**
?? ? * @param args
?? ? */
?? ?public static void main(String[] args) {
?? ??? ?
?? ??? ?CheckCode codeVo = new CheckCode();
?? ??? ?codeVo.Input();
?? ?}
?
?
}

運行結(jié)果:

請輸入一個12位的數(shù)字。。。。。。
111111111111
checkCode = 6

兩個char類型的字符相加結(jié)果是int類型的整數(shù)

程序驗證

public class Test {
? ? public static void main(String[] args) {
? ? ? ? System.out.println('a'+'b');
? ? }
}

結(jié)果:

195

結(jié)論

當對byte、short、char類型進行混合運算時,最終結(jié)果一定是整型,當然你也可以把它們都轉(zhuǎn)換成int類型的,之后在進行混合運算

當多種數(shù)據(jù)類型進行混合運算的時候,最后的數(shù)據(jù)類型一定是它們中取值最大的那個數(shù)據(jù)類型,如果里面有字符串的話,那最后的數(shù)據(jù)類型一定是字符串類型,至于中間怎么運算的,接下來我通過幾個例子來說明一下:

例1:

public class Test {
? ? public static void main(String[] args) {
? ? ? ? System.out.println(1 / 2 + 1.1);
? ? ? ? System.out.println(1.0 / 2 + 1.1);
? ? }
}

結(jié)果:

1.1
1.6

解釋:

如果沒有直接和1.1相加運算,那1/2還是按照整型去計算的,計算結(jié)果是0,然后加上1.1,結(jié)果就是double類型的;

如果計算的過程中直接就是1.0/2,那結(jié)果就是0.5,之后和1.1相加那結(jié)果就是1.6,結(jié)果還是double

例2:

public class Node {
? ? public static void main(String[] args) {
? ? ? ? System.out.println(1 + 2 + "3");
? ? ? ? System.out.println("1" + 2 + 3);
? ? }
}

結(jié)果:

33
123

解釋:

通過第一個結(jié)果可以看出是先進行1+2,得出結(jié)果是3,之后在和字符串3拼接,所以結(jié)果是字符串33;

然后看第二個結(jié)果,那就是字符串1和2拼接,結(jié)果是字符串12,然后字符串12和3拼接,結(jié)果就是字符串123;

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java concurrency線程池之線程池原理(二)_動力節(jié)點Java學院整理

    Java concurrency線程池之線程池原理(二)_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了Java concurrency線程池之線程池原理第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Eureka源碼核心類預備知識

    Eureka源碼核心類預備知識

    這篇文章主要為大家介紹了Eureka源碼核心類預備知識詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 深入理解Java設(shè)計模式之簡單工廠模式

    深入理解Java設(shè)計模式之簡單工廠模式

    這篇文章主要介紹了JAVA設(shè)計模式之簡單工廠模式的的相關(guān)資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2021-11-11
  • Spring JPA聯(lián)表查詢之OneToOne源碼詳解

    Spring JPA聯(lián)表查詢之OneToOne源碼詳解

    這篇文章主要為大家介紹了Spring JPA聯(lián)表查詢之OneToOne源碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • java解決單緩沖生產(chǎn)者消費者問題示例

    java解決單緩沖生產(chǎn)者消費者問題示例

    這篇文章主要介紹了java解單緩沖生產(chǎn)者消費者問題示例,需要的朋友可以參考下
    2014-04-04
  • Mybatis整合Spring 由于版本引起的BUG問題

    Mybatis整合Spring 由于版本引起的BUG問題

    這篇文章主要介紹了Mybatis整合Spring 由于版本引起的BUG問題,需要的朋友可以參考下
    2017-06-06
  • Java后端接入微信小程序登錄功能(登錄流程)

    Java后端接入微信小程序登錄功能(登錄流程)

    這篇文章主要介紹了Java后端接入微信小程序登錄功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Resty開發(fā)restful版本的Jfinal深入研究

    Resty開發(fā)restful版本的Jfinal深入研究

    這篇文章主要為大家介紹了Resty開發(fā)restful版本的Jfinal深入研究有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • MyBatis?超詳細講解動態(tài)SQL的實現(xiàn)

    MyBatis?超詳細講解動態(tài)SQL的實現(xiàn)

    動態(tài)?SQL?是?MyBatis?的強大特性之一。如果你使用過?JDBC?或其它類似的框架,你應(yīng)該能理解根據(jù)不同條件拼接?SQL?語句有多痛苦,例如拼接時要確保不能忘記添加必要的空格,還要注意去掉列表最后一個列名的逗號。利用動態(tài)?SQL,可以徹底擺脫這種痛苦
    2022-03-03
  • Java Morris遍歷算法及其在二叉樹中的應(yīng)用

    Java Morris遍歷算法及其在二叉樹中的應(yīng)用

    Morris遍歷是一種基于線索二叉樹的遍歷算法,可以在不使用?;蜻f歸的情況下,實現(xiàn)二叉樹的前序、中序和后序遍歷。該算法利用二叉樹中的空指針或線索指針,將遍歷序列嵌入到原二叉樹中,實現(xiàn)了常數(shù)級別的空間復雜度,適用于對空間要求較高的場景
    2023-04-04

最新評論