请在我的Java代码中解释这一特定行?

时间:2013-06-24 03:23:31

标签: eclipse netbeans java

我刚刚开始学习Java,直到数组,我正在准备这个程序(从一本书中)用''替换空间''。 (点),我无法理解这一特定的界限(即使在我正在学习的书中也未提及)。

请帮帮我。

class SpaceRemover{
    public static void main(String[] args){
        String mostFamous = "Hey there stackoverFLow     ";
        char [] mf1 = mostFamous.toCharArray();
        for(int dex = 0; dex<mf1.length;dex++)
        {
            char current = mf1[dex];   // What is happening in this line ??
            if (current != ' ') {
                System.out.print(current);

            }
            else{
                System.out.print('.');

            }
        }
        System.out.println();


        }
    }

有人请解释“char current = mf1 [dex];”

中发生的事情

非常感谢你的时间。

10 个答案:

答案 0 :(得分:2)

您将获得字符数组dex中的mf1字符/项(因此mf1[dex])并将其存储到本地变量current中。

答案 1 :(得分:1)

java中的String基本上是一个字符数组。所以上面的代码所做的是将字符串转换为字符数组,以便稍后可以访问数组的每个索引。然后代码进入for循环,以遍历char数组的所有indecies。

假设您已经清楚这一点,代码现在创建一个char变量,它保存数组的当前索引。

char current = mf1[dex];

mf1是表示字符串的char数组。 dex是由for循环确定的char的当前索引。因此,通过这样做,我们可以检查char数组的每个字符(字母)。现在,如果char“current”是一个空格,我们可以用点替换它。

答案 2 :(得分:0)

它在数组idx中获取索引mf1处的字符,并将其值存储在current变量中。

答案 3 :(得分:0)

for循环逐个字符地迭代字符串mostFamous

你要问的是将角色放在特定的位置。功能类似于JavaScript的charAt(i)

答案 4 :(得分:0)

在此声明之后,char [] mf1 = mostFamous.toCharArray();

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

所以在这一行,char current = mf1[dex]; 所以,在第一次迭代中,current=H,第二次迭代current=e...

答案 5 :(得分:0)

char current = mf1[dex]; 

此行从mf1 char数组中获取值,并根据current分配给dex变量,dex作为数组元素的索引,并递增与运行循环。

答案 6 :(得分:0)

该行

char current = mf1[dex];

放在for循环中,每次循环迭代时变量dex都会递增。变量dex是数组的从零开始的索引。在赋值运算符(=)的左侧,您声明了一个名为current的{​​{1}}类型的变量。在赋值运算符的右侧,如果从零开始计数,则访问CharArray的第de个字符。赋值运算符将您声明的变量与您在右侧指定的字符的值绑定。

例如,第一次运行循环时,char将从0开始,因此dex(或mf1[dex])只是'H'。

答案 7 :(得分:0)

这是解决方案

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();



            }

        }
    }

答案 8 :(得分:0)

它将char数组mf1的元素在索引dex处分配给char变量current

请注意,使用foreach语法可以简化for循环和该行;这两个代码块是等价的:

// Your code
for(int dex = 0; dex<mf1.length;dex++) {
    char current = mf1[dex]; 

// Equivalent code
for (char current : mf1) {

但是,整个方法可以用一行代替:

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

答案 9 :(得分:0)

char current = mf1[dex]; 

这将返回索引为dex的char数组中的char元素

这是数组的一个基本用法。

祝你学习顺利。