我有以下代码:
reader := bufio.NewReader(os.Stdin)
fmt.Print("room: width x length: ")
inStr, _ := reader.ReadString('\n')
result := strings.Split(inStr, "x")
string1, _ := strconv.ParseFloat(result[0], 64)
string2, _ := strconv.ParseFloat(result[1], 64)
fmt.Print(string2)
在最后一个print语句中,如果我打印string1
它返回正确的值,但是如果我尝试打印string2
它返回0,无论我输入到控制台的值是什么。
有谁知道为什么会这样? 谢谢!
答案 0 :(得分:5)
替换
import java.util.*;
public class random2
{
public static void main ( String[] args )
{
Random random;
int i;
int[] numbers;
int numberOfNumbers=0;
int upperRange=999;
int lowerRange=0;
int randomNumber=0;
Scanner in = new Scanner(System.in);
System.out.println("How many random numbers between 0-999?");
numberOfNumbers=in.nextInt();
numbers = new int [numberOfNumbers];
random = new Random();
for (i = 0; i < numberOfNumbers; i++){
randomNumber = random.nextInt(upperRange-lowerRange) + lowerRange;
numbers[i] = randomNumber;
if (i==numberOfNumbers)
System.out.println(randomNumber);
}
}
}
与
result := strings.Split(inStr, "x")
由于字符串包含result := strings.Split(strings.TrimSpace(inStr), "x")
,因此您的第二个数组元素也包含它。
另外,我真的建议在发布此类问题之前查看错误消息。您可以看到\n
作为下一个代码的结果
strconv.ParseFloat: parsing "23\n": invalid syntax