Будь ласка, поясніть цю конкретну лінію в моєму коді Java?

Я тільки почав навчатися Java, і я досягла до масивів, я готував цю програму (з книги) на заміну простору '' з ''. (точок), і я не можу зрозуміти цю конкретну лінію (її не згадано навіть у книзі, яку я вивчаю).

Будь ласка, допоможіть мені.

class SpaceRemover{
    public static void main(String[] args){
        String mostFamous = "Hey there stackoverFLow     ";
        char [] mf1 = mostFamous.toCharArray();
        for(int dex = 0; dex

Хтось, будь ласка, поясніть, що відбувається в "char current = mf1 [dex];"

Велике спасибі за ваш час.

1
додано Автор user1181445, джерело

10 Відповіді

Ви отримуєте символ/елемент dex у масиві символів mf1 (отже mf1 [dex] ) і зберігаєте його в локальній змінній < код> поточний .

2
додано
спасибі за всі відповіді :)
додано Автор AbhiSheikhBin, джерело

В основному, String в java являє собою масив символів. Тож, що робиться вище, це перетворює рядок в масив символів, щоб потім він мав доступ до кожного індексу масиву. Потім код входить до циклу для циклу, щоб прослідкувати за всіма показниками масивів символів.

Припускаючи, що це вже вам зрозуміло, тепер код створює змінну char, яка містить поточний індекс масиву.

char current = mf1[dex];

mf1 - ваш масив, який представляє рядок. dex - це поточний індекс символу, який визначається для циклу. Таким чином, ми можемо перевірити кожен символ (буква) символьного масиву. Тепер, якщо char "current" - це порожній простір, ми можемо замінити його точкою.

1
додано
Велике спасибі за дійсно гарне пояснення. Я записав вашу відповідь ... Це змусило мене зрозуміти цю концепцію дійсно добре. Дякую :)
додано Автор AbhiSheikhBin, джерело

Він присвоює елемент char масиву mf1 в індексі dex до змінної char current .

Зауважте, що для циклу та цієї лінії можна спростити за допомогою синтаксису foreach ; ці два блоки коду є еквівалентними:

// Your code
for(int dex = 0; dex

Але далі весь метод може бути замінено одним рядком:

public static void main(String[] args){
    System.out.println("Hey there stackoverFLow     ".replace(" ", "."));
}
0
додано

Для циклу повторюється символ рядка mostFamous .

the line you are asking is to get the character at specific position. Function is similar to JavaScript's charAt(i)

0
додано

Він отримує символ в індексі idx в масиві mf1 і зберігає його значення в змінній current .

0
додано
char current = mf1[dex]; 

Цей рядок отримує значення з масиву символів mf1 і призначає змінну current відповідно до dex , dex works як індекс елемента масиву, і це збільшується з циклом запуску.

0
додано
Так. дякую bhai :) Я зрозумів зараз
додано Автор AbhiSheikhBin, джерело

Ось рішення

class SpaceRemover{

    public static void main(String[] args){

        String mostFamous = "Hey there stackoverFLow     ";

            char [] mf1 = mostFamous.toCharArray();

           //mf1 contains={'H', 'e','y',' ','t','h',.........}

            for(char current: mf1)

            {

         //the for-each loop assigns the value of mf1 variable to the current variable

                //At first time the 'H' is assigned to the current and so-on

                System.out.print(current==' '?'.':current );

            }

            System.out.println();



            }

        }
    }
0
додано

After this statement, char [] mf1 = mostFamous.toCharArray();

mf1[0]=H, mf1[1]=e, mf1[1]=y...

тому в цьому рядку char current = mf1 [dex]; так, при першій ітерації, current = H , друга ітерація current = e ...

0
додано
Дякую за чітке пояснення :)
додано Автор AbhiSheikhBin, джерело
char current = mf1[dex]; 

це поверне елемент char в масив масиву, чий індекс dex

Це досить основне використання масиву.

Успішність з навчанням.

0
додано
Спасибі пане. Так я зроблю все можливе. :)
додано Автор AbhiSheikhBin, джерело

Лінія

char current = mf1[dex];

поміщається всередину для циклу, де змінна dex збільшується кожного разу, коли цикл повторюється. Значення dex є індексом масиву на основі нуля. На лівій стороні оператора присвоєння (=) ви оголошуєте змінну з назвою current типу char . У правій частині оператора присвоювання ви отримуєте доступ до dex-ного символу вашої CharArray, якщо ви починаєте підрахунок від нуля. Оператор присвоювання пов'язує вашу змінну з значенням символу, який ви вказали з правого боку.

Наприклад, при першому запуску циклу, dex буде починатися з 0, отже mf1 [dex] (або mf1 [0] ) це просто "Н".

0
додано
Велике спасибі за вашу відповідь. Я зрозумів. :)
додано Автор AbhiSheikhBin, джерело
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників