Wczytanie słowa do tablicy.

0

Witam. Uczę się programowania w JAVIE. Chciałbym zapytać w jaki sposób mogę wczytać kilka słów do tablicy ?? Wiem, że ma to być w pętli for. Proszę o pomoc. Pozdrawiam

0

public void wczytaj(String tabs)
    {
        Scanner in = new Scanner (System.in);
        System.out.println("Wczytaj słowa po kolei ");
        for(int i=0; i<tabs.length(); i++)
        {
            tabs[i]=in.nextLine();
        }
        
    }

w ten sposób chyba nie działa... co robię źle?

0

A jak tworzyłeś tablicę tabs?

0
public static void main(String[] args) {
        Scanner in = new Scanner (System.in);
        System.out.println("Ile słów chcesz wczytać? ");
        int r=in.nextInt();
        String[] tabs = new String[r];
        
    }

W ten sposób

1
private static Scanner in=new Scanner(System.in);
public String[] wczytaj()
    {
     System.out.println("Podaj wszystkie słowa oddzielone spacją: ");
     return in.nextLine().split();
    }
1

@_13th_Dragon już (prawie) podał rozwiązanie. Twój kod jest błędny bo Scanner in i tablica tabs są zmiennymi lokalnymi metody main => są nieznane w metodzie wczytaj.
W kodzie @_13th_Dragona powinno być split(" ")jeśli separatorem słów jest pojedyncza spacja lubsplit("\s+")` jeśli separatorem może być dowolny ciąg białych znaków, np. dwie kolejne spacje, tabulator,..

0
  public String[] wczytajfirst()
    {
     System.out.println("Podaj wszystkie słowa oddzielone spacją: ");
     return in.nextLine().split(" ");
    }
    
    public void wczytaj(String tabs)
    {
       
        for(int i=0; i<tabs.length(); i++)
        {
         wczytajfirst();
        }
        
    }

tak?? oczywiście Scanner jest po za main

1

Nie.

1

to:

darexx napisał(a):
...
    public void wczytaj(String tabs)
...

Już jest błąd, ponieważ przekazujesz do metody referencje na już istniejącą tablicę a to oznacza że nie możesz jej zmienić wewnątrz metody.
Więc jeżeli program nie ma wbudowanego modułu jasnowidzenia aby przydzielił tablicę do odpowiedniego rozmiaru to nie da się tego zrobić.
Zaś jeżeli ma moduł jasnowidzenia to nie ma sensu prosić o te słowa, od razu pobrać wszystkie słowa z tego modułu.

import java.util.*;
import java.lang.*;
import java.io.*;
 
class Ideone
{
    private static Scanner in=new Scanner(System.in);
    public static String[] wczytaj()
    {
        System.out.println("Podaj wszystkie słowa oddzielone spacją: ");
        return in.nextLine().split();
    }
    public static void main (String[] args) throws java.lang.Exception
    {
        String[] tb=wczytaj();
        System.out.println("Wczytano "+tb.length+" słów");
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1