簡體   English   中英

如何在Java字符串數組中查找特定字符的整數值?

[英]How to find integer value of specific characters in a Java string array?

我正在使用以下代碼來獲取位於字符串數組內的字符串值(如9s或4c),並找到第一個字符的整數值。 我還希望能夠將其用於具有多個數字(例如10s或13c)的字符串值。

total = total + Integer.parseInt(a[i].substring(0)) + 1;

這給了我一個數字格式的例外。 有什么想法我可能做錯了嗎?

這會起作用

public static void getIntVal()  {
    String text = "123cc";
    String numOnly = text.replaceAll("\\D+", "");
    int numVal = Integer.valueOf(numOnly);
    System.out.println(numVal);
}

如果有人想使用雙倍,則可以按照以下步驟進行操作

    String text = "123.0114cc";
    String numOnly = text.replaceAll("\\p{Alpha}","");
    double numVal = Double.valueOf(numOnly);
    System.out.println(numVal);

str.substring(0)只是再次str (請閱讀docs )。 您可能正在尋找

a[i].substring(0, a[i].length() - 1)  // cuts off last character

Ruchira的解決方案規定刪除非數字字符。 在您的設置中看起來是正確的。 但是,如果數字如shreyansh jogi問題那樣為浮點數或雙精度數,則她的解決方案無效。

正確實施Ruchira的思想解決方案,可以解決您的問題...

String text = "123.0121cc";
String numOnly = text.replaceAll("\\p{Alpha}", "");

如果您知道會發生什么,請說double :double numVal = Double.valueOf(numOnly); System.out.println(numVal);

否則..如果您不知道其余文本是integer還是double ,這將對您有所幫助:

if(numOnly.contains(".")) {
    double numVal = Double.valueOf(numOnly);
    System.out.println(numVal);
} else {
    int numVal = Integer.valueOf(numOnly);
    System.out.println(numVal);
}
total = total + Integer.parseInt(a[i].substring(0,a[i].length()-1));

暫無
暫無

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

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