J'ai donc regardé quelques questions connexes, mais je n'arrive toujours pas à trouver ma réponse (je suppose que c'est spécifique). J'essaye d'employer la méthode de Scanner.useDelimiter dans Java et je ne peux pas l'obtenir pour fonctionner correctement ... voici mon dilemme ....useDelimiter pour analyser les virgules mais pas le signe négatif
Nous sommes censés écrire un programme qui prend un X, Y coordonne et calcule la distance entre les deux points. De toute évidence, une solution consiste à analyser chaque coordonnée x et y séparément, mais cela est bâclé pour moi. Mon plan est de demander à l'utilisateur d'entrer la coordonnée "x, y", puis de saisir les entiers en utilisant la méthode Scanner.nextInt(). Cependant, je dois trouver un moyen d'ignorer le "," et bien sûr, je peux le faire avec la méthode useDelimiter.
Selon d'autres threads, je dois comprendre regex (pas encore là) pour mettre dans la méthode useDelimiter et je l'ai pour ignorer les virgules, mais il est possible qu'un utilisateur entre un nombre négatif comme une coordonnée (qui est techniquement correcte). Comment est-ce que j'utilise useDelimiter pour ignorer la virgule, mais reconnaît quand même le signe négatif?
Ceci est ma première fois ici, voici mon code:
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();
}
}
Merci pour votre aide et je suis impatient d'aider d'autres personnes sur toute la ligne!
Merci beaucoup pour votre aide !! Nous n'avons pas discuté des méthodes parseInt et split, mais je l'ai réussi! Je vais regarder dans les méthodes un peu plus loin mais j'apprécie votre aide, cela fonctionne parfaitement. Honnêtement, il était trop facile de demander séparément à l'utilisateur x et y et j'ai appris de nouvelles choses en essayant d'être plus difficile. Depuis que je suis nouveau, je ne peux pas vraiment voter, mais je vous remercie d'avoir pris le temps de m'aider. – mmendoza27