[英]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.