因此,如果我給了一個字符串「Cylinder/soda200/0.0054/5/10」並解析它,我會如何將這些部分只是數字,並把它們變成一個int或double?將一串數字從解析字符串的一部分變成一個int
目前我做這個分析是:
String delims="[/]+";
String[] drinkParse=lineToParse.split(delims);
因此,如果我給了一個字符串「Cylinder/soda200/0.0054/5/10」並解析它,我會如何將這些部分只是數字,並把它們變成一個int或double?將一串數字從解析字符串的一部分變成一個int
目前我做這個分析是:
String delims="[/]+";
String[] drinkParse=lineToParse.split(delims);
使用Integer.parseInt()
,Double.parseDouble()
等,將您的字符串作爲參數傳遞。
例如int i = Integer.parseInt(drinkParse[3]);
請注意,如果無法根據請求解析參數,則可以拋出NumberFormatException
。 (例如,「soda200」不能直接解析爲int)
我會試試這個,謝謝 –
您可以使用new Integer("22")
並將其保存到一個int
,以轉化它。 Double
也是如此。還有其他方法,我建議使用簡單的Google搜索。
您應該使用分割功能和解析這樣
Object[] values = (Object[]) var.split("/");
values[2]=Double.parseDouble(values[2]);
values[3]=Integer.parseInt(values[3]);
values[4]=Integer.parseInt(values[4]);
System.out.println(values);
您還可以迭代數組並檢查是否字符串驗證對雙雷傑/ P或int,然後做相應的轉換,如果你不知道職位。
我不知道,如果你熟悉java開發StringBuilder
,但你可以更多地瞭解它here,你也可以看看String
API here。在下面的程序示例中,我正在從您發佈的字符串中讀取字符,直到程序運行到「/」或除非它是字符串的末尾。所有字符都保存到StringBuilder
,並在轉換爲String
後檢查它是否是數字,可以是double或integer。如果字符串中的任何字符不是數字或句點isNumber標誌值設置爲false,我們不打印它。如果是一段時間,我們將設爲isDouble標誌值爲true,因爲我們需要該信息以進一步轉換。最後,如果所有條件都成立,我們將打印數字,並創建新的StringBuilder
以開始構建新的String
。
public class myProject {
public static void main(String[] args) {
String str = "Cylinder/soda200/0.0054/5/10";
StringBuilder sb = new StringBuilder();
boolean isDouble;
boolean isNumber;
System.out.println("List of numbers:");
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) != '/') {
sb.append(str.charAt(i));
}
if (str.charAt(i) == '/' || i+1 == str.length()) {
String strConvert = sb.toString();
isDouble = false;
isNumber = true;
for (int j = 0; j < strConvert.length(); j++) {
if (!Character.isDigit(strConvert.charAt(j))) {
if (strConvert.charAt(j) == '.') {
isDouble = true;
} else {
isNumber = false;
}
}
}
if (isDouble && isNumber) {
System.out.println(Double.parseDouble(strConvert));
} else if (isNumber) {
System.out.println(Integer.parseInt(strConvert));
}
sb = new StringBuilder();
}
}
}
}
希望這會幫助你或任何其他有類似問題的人!
你想要的確切輸出是什麼? 200? 200,0.0054,5,10? 200/0.0054? –
'int i = Integer.parseInt(str);' – Gene
我希望每個數字都是分開的,所以說0.0054是一個double,而5和10是一個int –