我有这个简短的代码片段,我必须在其中检查一个字符串以查看它是否包含整数和可能的小数。该字符串是金额,(12.34)
因此它也不能超过第四个索引。
我的问题是我被告知使用charAt()
(并且在我的代码中我使用matches()
并且contains()
哪个是错误的)来检查整数和小数,以便如果字符串与这些参数一起使用,这个例程将返回一个布尔值,但是我'我对如何将其转换为 usecharAt()
而不是matches()
and感到困惑contains()
。
同样,如果我格式错误,或者措辞错误,或者代码看起来很糟糕,我很抱歉,我在 Java 的第一个学期,这是我上过的第一个编程课,所以我是有点粗糙。
import java.util.Scanner;
public class Auction
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
String price;
String quantity;
System.out.print("How much money are you willing to bet on this item?: $");
price = keyboard.next();
if(price.matches("[0-9]*") && price.length() <= 5)
{
Float f = Float.parseFloat(price);
System.out.printf("$%5.2f", f);
System.out.println();
}
else if(price.matches("[0-9]*") && price.length() <= 5 && price.contains("."))
{
Float f = Float.parseFloat(price);
System.out.printf("$%5.2f", f);
System.out.println();
}
else
{
System.out.println("Invalid input");
}
System.out.print("What quantity do you want to bid on?: ");
quantity = keyboard.next();
if(quantity.contains("."))
{
System.out.println("Invalid input");
}
}
}