请在我的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];"中发生了什么

非常感谢您抽出时间。

您正在获取字符数组mf1(因此为mf1[dex])中的第dex个字符/项,并将其存储到局部变量current中。

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

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

char current = mf1[dex];

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

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

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

你要求的是把角色放在特定的位置。函数类似于JavaScript的charAt(i)

char current = mf1[dex]; 

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

char current = mf1[dex];

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

例如,第一次运行循环时,dex将从0开始,因此mf1[dex](或mf1[0])仅为"H"。

这是解决方案

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

            }
        }
    }

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

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

// 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(" ", "."));
}
char current = mf1[dex]; 

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

这是数组的基本用法。

祝你学习顺利。

在该语句之后,char [] mf1 = mostFamous.toCharArray();

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

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

相关内容

  • 没有找到相关文章

最新更新