2015-09-11 4 views
-2

Он компилируется просто отлично ... но вызывает ошибку «java.lang.NullPointerException» при попытке ввести индекс (как целое число). Я думал, что уже дал индекс тип int, поэтому я не уверен, почему это происходит.Первый раз с использованием конструкторов

Я новичок в java, поэтому, если у вас есть какие-то указатели на что-то еще, мне нужно изучить или попробовать эти советы, также будет оценено.

import java.util.Scanner; 

class LineEditor 
{ 
    public static void main (String [ ] args) 
    { 
    //variables 
    String myLine; 
    String str; 
    int index; 

    Scanner scan = new Scanner(System.in); 

    //creates original myLine 
    myLine = new String ("Computer Science"); 
    System.out.println ("The original string of text is: " + myLine); 

    //variable inputs 
    System.out.println("Enter a string to alter myLine: "); 
    str = scan.next(); 
    System.out.println("Enter an index for the string to be inserted at: "); 
    index = scan.nextInt(); 

    Insert insert = new Insert(str, index); 

    System.out.println ("The altered string is: " + insert.strIntoMyLine()); 
    } 
} 

class Insert 
{ 
    String str; 
    int index; 
    String myLine; 

    public Insert (String s, int i) 
    { 
     str = s; 
     index = i; 
    } 

    String strIntoMyLine() 
    { 
     String part1; 
     String part2; 
     part1 = myLine.substring (0, index); 
     part2 = myLine.substring (index); 
     return (part1 + str + part2); 
    } 
} 
+3

отправьте свое исключение/stacktrace здесь. –

+0

Пожалуйста, задайте ваши вопросы более наглядным заголовком, чтобы другие пользователи с подобной проблемой могли его найти. – m69

ответ

0

Кажется, что в myLine ничего нет.

Заменить Insert insert = new Insert(str, index); с Insert insert = new Insert(str, index,myLine);.

и public Insert (String s, int i) с public Insert (String s, int I, String myLine)

Также

this.myLine = myLine; в конструкторе

+0

THANK YOU SO MHCHHHHHHHHHHHH –

+0

@ S.Kim После публикации вопросов о On StackOverflow, пожалуйста, примите ответ, который решил вашу проблему, чтобы помочь другим пользователям с подобной проблемой найти правильное решение. – m69

0

вашего конструктор должен быть

public Insert(String s, int i, String r) { 
    str = s; 
    num = i; 
    myLine = r; 
} 

и передать значение, как этот «Вставить вкладыш = новая Вставка (ул, индекс, myLine);»

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