【发布时间】:2016-01-03 15:02:13
【问题描述】:
在我的程序中,用户输入带有 TEMP 的 float 数字(例如 TEMP 10.05)。
该程序应仅采用 float 部分并将其转换为 fareheit。最后以浮点数打印出结果。
我该怎么做?
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("The following program takes a float value with the word 'TEMP'in celcius, and converts into farenheit");
System.out.println("Enter the temperature with TEMP: ");
while (true) {
String input = s.next();
//converting into farenheit
if (input != null && input.startsWith("TEMP")) {
float celsius = Float.parseFloat(input.substring(input.indexOf(' ') + 1));
float tempFaren=celcius+32.8;
// float=result
System.out.println("Temperature in farehheit is : "+tempFaren+ " F.");
}
}
}
程序显示此错误:
【问题讨论】:
-
“只取浮动部分”是什么意思?你的意思是“TEMP”之后的所有内容吗?如果是这样,substring 可能是你的朋友......
-
它是一个字符串。找出数字从哪里开始,提取字符串的那部分,然后stackoverflow.com/questions/7552660/…
-
作为建议,您要为此使用
Scanner#nextLine而不是Scanner#next,因为后者只会读取"TEMP"而不是浮动部分。 -
Jon Skeet,是的,TEMP 之后的所有内容。这意味着它应该忽略 TEMP 并且只取数字。
标签: java string char java.util.scanner user-input