簡體   English   中英

在 Java 中如何將字符串的第一個(數字)字符轉換為整數?

[英]How do you turn the first (numerical) character of a string into an integer in Java?

因此,假設我有一個 1.5 的雙char.at ,然后將其轉換為字符串,然后嘗試使用char.at方法將第一個字符轉換為字符串。

double a = 1.5;
String b = String.valueOf(a);
System.out.println(Integer.valueOf(b.charAt(0)));

但是當我這樣做時,這是我收到的輸出:

49

我做錯了什么?

valueOf接受一個int或一個String 您傳遞了一個被提升為整數的char (由charAt返回)。 您可以使用substring來獲取substring的第一個字符。

double a = 1.5;
String b = String.valueOf(a);
System.out.println(Integer.valueOf(b.substring(0, 1)));

它采用第一個字符的ascii值。

如果要將Integer.valueOf String作為參數傳遞,請嘗試以下操作:

double a = 1.5;
String b = String.valueOf(a);
System.out.println(Integer.valueOf(Character.toString(b.charAt(0))));

另外,如果你想傳遞一個整數, Integer.valueOf也可以如下使用:

double a = 1.5;
String b = String.valueOf(a);
System.out.println(Integer.valueOf(Character.getNumericValue(b.charAt(0))));

輸出:

1

只需使用 Character.getNumericValue(b.charAt(0)); 獲取實際值而不是 ASCII

有多種方法可以做到這一點,一種方法如下(使用Double類):

Double number = 1.5;
System.out.println(number.intValue());

intValue()方法將返回 Double 的 istance 的int表示

parseInt 也可以工作:

double a = 1.5;
String b = String.valueOf(a);
int c = Integer.parseInt(b.substring(0,1));
System.out.println(c);

'1'的 ASCII 值是49 ,這就是你得到的。 為了得到1 ,你需要減去'0'48 (ASCII值'0'的話)。

public class Main {
    public static void main(String[] args) {
        double a = 1.5;
        String b = String.valueOf(a);
        System.out.println(b.charAt(0) - '0');
    }
}

輸出:

1

或者,您可以使用Character#getNumericValue來獲取字符的數值。

public class Main {
    public static void main(String[] args) {
        double a = 1.5;
        String b = String.valueOf(a);
        System.out.println(Character.getNumericValue(b.charAt(0)));
    }
}

輸出:

1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM