所以我看了幾個相關的問題,但仍似乎無法找到我的答案(我猜是因爲它是特定的)。我正在嘗試使用Java中的Scanner.useDelimiter方法,並且我無法使它正常工作......這是我的難題....useDelimiter解析逗號,但不是負號
我們應該編寫一個程序,它需要X,Y協調並計算兩點之間的距離。顯然,一個解決方案是分別掃描每個x和y座標,但這對我來說很渺茫。我的計劃是要求用戶輸入座標爲「x,y」,然後使用Scanner.nextInt()方法獲取整數。但是,我必須找到一種方法來忽略「,」,當然,我可以用useDelimiter方法做到這一點。
根據其他線程,我必須瞭解正則表達式(還沒有)放入useDelimiter方法,我已經得到它忽略逗號,但有可能是用戶輸入一個負數作爲一個座標(這在技術上是正確的)。我如何得到useDelimiter忽略逗號,但仍然認識到負號?
這是我第一次在這裏,這裏是我的代碼:
import java.util.Scanner;
import java.text.DecimalFormat;
public class PointDistanceXY
{
public static void main(String[] args)
{
int xCoordinate1, yCoordinate1, xCoordinate2, yCoordinate2;
double distance;
// Creation of the scanner and decimal format objects
Scanner myScan = new Scanner(System.in);
DecimalFormat decimal = new DecimalFormat ("0.##");
myScan.useDelimiter("\\s*,?\\s*");
System.out.println("This application will find the distance between two points you specify.");
System.out.println();
System.out.print("Enter your first coordinate (format is \"x, y\"): ");
xCoordinate1 = myScan.nextInt();
yCoordinate1 = myScan.nextInt();
System.out.print("Enter your second coordinate (format is \"x, y\"): ");
xCoordinate2 = myScan.nextInt();
yCoordinate2 = myScan.nextInt();
System.out.println();
// Formula to calculate the distance between two points
distance = Math.sqrt(Math.pow((xCoordinate2 - xCoordinate1), 2) + Math.pow((yCoordinate2 - yCoordinate1), 2));
// Output of data
System.out.println("The distance between the two points specified is: " + decimal.format(distance));
System.out.println();
}
}
感謝您的幫助,我期待着幫助其他人下了線!
非常感謝您的幫助!我們沒有討論過parseInt和split方法,但是我得到了它的工作!我會進一步研究這些方法,但我感謝您的幫助,它完美地工作。 老實說,分別向用戶提問x和y太容易了,我通過嘗試變得更加困難,學到了一些新的東西。由於我是新人,不能真正投票,但我感謝你花時間來幫助我。 – mmendoza27 2010-10-14 05:57:15