2015-04-16 3 views
-5

Каков возможный способ сканирования точки в java? Должен ли я читать point.x затем point.y или я могу сразу прочитать две координаты?Как сканировать точки в Java

import java.awt.Point; 
import java.util.Scanner; 
public class Saleelo { 
    public static void main(String[] args) { 
     int n = 5; 
     Scanner scan = new Scanner(System.in); 
     Point[] Points = new Point[60]; 
     for (int i=0 ; i < n ; i++) { 
      Points[i].x = scan.nextInt(); 
      Points[i].y = scan.nextInt(); 
      System.out.println(Points[i]); 
     } 
    } 
} 

Это то, что я пытался, и это дает мне null pointer exception

+1

Как вы хотите, чтобы пользователь вводил точки? Это действительно соответствует вашему первому вопросу по определению. Причина, по которой вы получаете NPE, - это то, что новый никогда не создает _ Point '- 'Points [i] = new Point()'; и массив инициализируется значением «null». Кроме того, придерживайтесь соглашений об именах Java, переменные должны быть в 'camelCase'. –

+0

Не удивительно. вы ничего не инициализировали в 'Points', поэтому' Points [i] .x', вероятно, бросает ваш нулевой указатель. – tnw

ответ

1

Instantiate каждый элемент массива, прежде чем пытаться присвоить значения его элементам

for (int i=0 ; i < points.length ; i++) { 
    points[i] = new Point(); 
    ... 

где points массив инициализируется с только 5 элементы, которые вы будете использовать

+0

Я бы добавил к этому ответу, что нет смысла создавать «Точку [60]», если длина, если она уже установлена ​​на 5. Upvoted. –

+0

Спасибо большое, что работает :) –

+0

@ Jean-François Savard: нет смысла создавать массив вообще ... – Holger

Смежные вопросы