Java karakter array initializer

Ik heb geprobeerd een programma te maken dat tekens scheidt.
De vraag is:

“Maak een char-array en gebruik een array-initialisator om de array te initialiseren met de tekens in de tekenreeks ‘Hi there’. Geef de inhoud van de array weer met een for-statement. Scheid elk teken in de array met een spatie” .


Het programma dat ik heb gemaakt:

String ini = "Hi there";
char[] array = new char[ini.length()];
for(int count=0;count<array.length;count++) {
   System.out.print(" "+array[count]);
}

Wat moet ik doen om dit probleem op te lossen?


Antwoord 1, autoriteit 100%

Zo converteert u een String naar een char-array:

String str = "someString"; 
char[] charArray = str.toCharArray();

Ik raad je aan om een IDE te gebruiken bij het programmeren, om gemakkelijk te zien welke methoden een klasse bevat (in dit geval zou je toCharArray()kunnen vinden) en om fouten te compileren zoals de een die je hierboven hebt. U dient zich ook vertrouwd te maken met de documentatie, in dit geval deze String-documentatie.

Vermeld ook altijd welke compileerfouten je krijgt. In dit geval was het gemakkelijk te herkennen, maar als dat niet het geval is, kun je geen antwoorden krijgen als je het niet in het bericht opneemt.


Antwoord 2, autoriteit 6%

je doet het verkeerd, je hebt eerst de string gesplitst met spatie als scheidingsteken met String.split() en de char array gevuld met karakters.

of nog eenvoudiger, gebruik gewoon String.charAt()in de lus om de array te vullen zoals hieronder:

String ini="Hi there";
  char[] array=new  char[ini.length()];
  for(int count=0;count<array.length;count++){
         array[count] = ini.charAt(count);
  System.out.print(" "+array[count]);
  }

of een voering zou zijn

 String ini="Hi there";
  char[] array=ini.toCharArray();

Antwoord 3, autoriteit 6%

char array[] = new String("Hi there").toCharArray();
for(char c : array)
    System.out.print(c + " ");

Antwoord 4

Hier is de code

String str = "Hi There";
char[] arr = str.toCharArray();
for(int i=0;i<arr.length;i++)
    System.out.print(" "+arr[i]);

Antwoord 5

In plaats van bovenstaande manier kunt u de oplossing eenvoudig bereiken door de volgende methode te volgen..

public static void main(String args[]) {
    String ini = "Hi there";
    for (int i = 0; i < ini.length(); i++) {
        System.out.print(" " + ini.charAt(i));
    }
}

Antwoord 6

Je hebt je string geïnitialiseerd en gedeclareerd als “Hallo daar”, je hebt je char[]-array geïnitialiseerd met de juiste grootte, en je bent begonnen met een lus over de lengte van de array die een lege string afdrukt in combinatie met een bepaald element waarnaar wordt gekeken in de reeks. Op welk punt heb je rekening gehouden met de functionaliteit om de tekens uit de String in de array te plaatsen?

Wanneer u probeert elk element in de array af te drukken, drukt u een lege string af, aangezien u ‘niets’ aan een lege touwt toevoegt, en aangezien er geen functionaliteit was om de tekens van de invoerreeks in te voegen aan de array. Je hebt echter alles rondom geïmplementeerd. Dit is de code die moet gaan nadat u de array hebt geïnitialiseerd, maar vóór de for-lus die herhaalt over de array om de elementen af ​​te drukken.

for (int count = 0; count < ini.length(); count++) {
  array[count] = ini.charAt(count);
}

Het zou efficiënter zijn om gewoon de voor-lussen te combineren om elk teken af ​​te drukken nadat u het in de array hebt geplaatst.

for (int count = 0; count < ini.length(); count++) {
  array[count] = ini.charAt(count);
  System.out.println(array[count]);
}

Op dit punt vraag je je waarschijnlijk af waarom ik het zelfs in een char [] moeten plaatsen wanneer ik ze gewoon kan afdrukken met behulp van de verwijzing naar het stringobject inizelf.

String ini = "Hi there";
for (int count = 0; count < ini.length(); count++) {
   System.out.println(ini.charAt(count));
}

Lees absoluut over Java-snaren. Ze zijn naar mijn mening fascinerend en werken vrij goed. Hier is een fatsoenlijke link: https://www.javatpoint.com/java-string

String ini = "Hi there"; // stored in String constant pool

wordt anders opgeslagen in het geheugen dan

String ini = new String("Hi there"); // stored in heap memory and String constant pool

, die anders is opgeslagen dan

char[] inichar = new char[]{"H", "i", " ", "t", "h", "e", "r", "e"};
String ini = new String(inichar); // converts from char array to string

.

Other episodes