当前位置: 首页 > 知识库问答 >
问题:

我试着用10个字符串数组打印偶数长度的字符串

茹轩昂
2023-03-14
import java.util.Scanner;
public class ArrayString 
{
    public static void main(String[] args) 
    {
        Scanner input= new Scanner(System.in);
        System.out.println("Please enter the strings");
        int a=0;
        for(int i=0; i<10; i++)
        {
            String[]str=new String[i];
        }
        for(int i=0; i<10; i++)
        {
            if(*str*.length[i]%2==0)
                System.out.println(String.*str*[i]);
        }
    }
}

str无法解析为变量Java(33554515)str无法解析或不是字段Java(33554502)

共有1个答案

程飞星
2023-03-14
import java.util.Scanner;
public class ArrayString 
{
    public static void main(String[] args) 
    {
        Scanner input= new Scanner(System.in);
        System.out.println("Please enter the strings");
        int a=0;
        for(int i=0; i<10; i++) {
            String[]str=new String[i]; // this only exists within the scope of this loop
        }
        for(int i=0; i<10; i++) {
            if(*str*.length[i]%2==0)
                System.out.println(String.*str*[i]);
        }
    }
}

首先更改,声明数组退出循环。

import java.util.Scanner;
public class ArrayString 
{
    public static void main(String[] args) 
    {
        Scanner input= new Scanner(System.in);
        System.out.println("Please enter the strings");
        int a=0;
        String[] str = null;
        for(int i=0; i<10; i++) {
            str=new String[i];
        }
        for(int i=0; i<10; i++) {
            if(str.length[i]%2==0)
                System.out.println(String.*str*[i]);
        }
    }
}

这将编译并运行,但您将只拥有最后一个数组,因为每次都会覆盖现有的数组。

编辑:我只是指范围问题,因为这是您列出的错误。我将改进下面的“固定”版本。

import java.util.Scanner;
public class ArrayString 
{
    public static void main(String[] args) 
    {
        Scanner input= new Scanner(System.in);
        System.out.println("Please enter the strings");
        int a=0;
        String[] str = new String[10];
        for(int i=0; i<10; i++) {
            str[i] = "" + i; // actually add a value               
        }
        for(int i=0; i<10; i++) {
            if(i%2==0) // divide the index, not the value, since those are Strings and you're trying to access them wrong
                System.out.println(str[i]);
        }
    }
}

您所能做的是创建一个包含数组的List或数组,并对其进行迭代。

 类似资料:
  • 给定一个字符串数组,单词,返回该数组,其中包含所有偶数长度的字符串,并将其替换为空字符串。 如何返回字符串?我需要返回字符串以便为偶数打印空白,但现在我只是返回一个计数。这是我的代码,我认为一切都是正确的,我只是不知道如何返回它?

  • 问题内容: 要在Python中打印字符串和数字,除了做类似的事情外,还有其他方法: 问题答案: 在 不带括号的情况下 使用 print函数 可用于旧版本的Python,但 Python3不再支持该功能 ,因此您必须将参数放在括号内。但是,有一些变通方法,如对该问题的答案所述。由于对Python2的支持已于2020年1月1日结束,因此 答案已修改为与Python3兼容 。 您可以执行以下任一操作(并

  • 当我们调用时,它会抛出一个异常,说明。我能做什么?

  • 我希望用户首先选择要键入的单词数,然后将单词数相加(例如Hello and bye=5 3=所有行的总长度为8),但我不知道如何将数组中的所有元素相加。 我的代码: 谢谢你的帮助

  • 我正在努力解决一个关于正则表达式的小问题。 我想用另一个长度相同但字符不同的子字符串替换特定字符的所有奇数长度子字符串。指定字符的所有偶数序列应保持不变。 一个字符串包含字母a、b和y,y的所有奇数长度序列都应替换为z: 另一个可能的例子是: 变成 使用正则表达式匹配所有奇数长度的序列没有问题。 不幸的是,我不知道如何将这些匹配的长度信息合并到替换字符串中。我知道我必须以某种方式使用反向引用/捕获

  • 问题内容: 我在以下几行中遇到问题,其中未初始化的数组/没有元素。 有什么可能的解决方案? 问题答案: 由于尚未初始化,因此没有长度,其值为。但是,编译器甚至不允许您按 原样 编译该代码,从而引发以下错误: 变量car可能尚未初始化 。 您需要先对其进行初始化,然后才能使用: 如果需要初始化一个空数组,可以使用以下命令: 如果需要使用特定的大小初始化它,以便填充某些位置,可以使用以下命令: 但是,