Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提示用户输入3个字符串,每个字符串有3个字符_Java_Arrays_Validation_Char - Fatal编程技术网

Java 提示用户输入3个字符串,每个字符串有3个字符

Java 提示用户输入3个字符串,每个字符串有3个字符,java,arrays,validation,char,Java,Arrays,Validation,Char,我对Java非常陌生,不知道自己在做什么。我应该提示用户输入三个字符串,每个字符串有三个字符,字符可能是“a”或“b”,但我真的被卡住了,我不知道该怎么做,如何验证这个条件。以下是我到目前为止的情况: import java.util.Scanner; public class Array { public static void main(String[]args) { Scanner scanner = new Scanner(System.in); String

我对Java非常陌生,不知道自己在做什么。我应该提示用户输入三个字符串,每个字符串有三个字符,字符可能是“a”或“b”,但我真的被卡住了,我不知道该怎么做,如何验证这个条件。以下是我到目前为止的情况:

import java.util.Scanner;
public class Array {
    public static void main(String[]args) {

    Scanner scanner = new Scanner(System.in);

    String strings[]= new String[3];

    System.out.println("Enter the strings: ");

    for(int i=0; i<3; i++) {
        strings[i] = scanner.nextLine();
    }

    char c[] = new char[3];

        if(c.length ==3){

            for (int i = 0; i < c.length; i++) {
                c[i] = strings[i].charAt(i);
            }
        } else System.out.println("Error");


    System.out.println("You entered the following strings: ");

    for (int i = 0; i < 3; i++) 
        System.out.println(strings[i]);
    }
}
import java.util.Scanner;
公共类数组{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
字符串[]=新字符串[3];
System.out.println(“输入字符串:”);
对于(int i=0;i添加以下代码

c[i] = strings[i].charAt(i);
if(!(c[i] == 'a' || c[i] == 'b')){
   System.out.println("Error");
 }

我希望我能正确理解你想要什么

  • 我认为您应该知道的一件重要事情是数组总是从位置0开始,这意味着如果您声明一个新数组[3],它将有4个位置:
    数组[0]
    数组[1]
    数组[2]
    数组[3]
  • 当您循环抛出
    数组时
    我建议您尝试使用以下格式:

     for (int i = 0;i < Array.length(); i++){
             do something...
          }
    
  • 第一个条件始终为
    true
    ,因此您将在foor循环中检查用户的
    输入
    ,但不会从下打印错误

  • 尝试使用此代码检查
    输入的
    字符串的de长度:

    对于(int i=0;i

  • 我目前还没有可能运行这段代码,所以可能是出了什么问题,但我希望它至少能帮上一点忙。欢迎。

    再添加一个for循环来遍历每个字符串

    if(c.length ==3){
                System.out.println(c.length);
                for (int i = 0; i < c.length; i++) {
    
                    for(int j = 0; j < c.length; j++)
                    {
    
                        if(!(c[i] == 'a' || c[i] == 'b')){
                               System.out.println("Error");
                             }
                        else
                            c[i] = strings[i].charAt(j);
                    }
                    System.out.println(c[i]);
                }
            } else System.out.println("Error");
    
    if(c.length==3){
    系统输出打印长度(c.长度);
    for(int i=0;i
    假设你有三根绳子 阿巴 工商管理学士 aaa

    第一个回路将穿过aba、bba、aaa


    第二个循环将遍历并检查每个字符串的每个字符是否包含a或b

    您可以尝试用以下内容替换主函数:

    public static void main(String[] args){
    
        Scanner scanner = new Scanner(System.in);
    
        String strings[]= new String[3];
    
        for(int i=0; i<3; i++) //do 3 times
        {
            System.out.println("Enter string: ");
    
            //get user input
            String input = scanner.nextLine();
            strings[i] = input;
    
            //check if input is correct size
            if(input.length()!=3){
                System.out.println("Error: input is wrong size; must be size 3");
            }
    
            //check that the input only consists of 'a' and 'b' characters
            for(int j=0;j<input.length();j++){
                if(input.charAt(j) !='a' && input.charAt(j) != 'b'){
                    System.out.println("Error: input contains invalid characters");
                    break; //after finding an invalid character, break out of inner loop
                }
            }
        }
        scanner.close(); //close the scanner after it is no longer needed
    
        System.out.println("You entered the following strings: ");
    
        for (int i = 0; i < 3; i++) {
            System.out.println(strings[i]);
        }
    }
    
    publicstaticvoidmain(字符串[]args){
    扫描仪=新的扫描仪(System.in);
    字符串[]=新字符串[3];
    
    对于(int i=0;i你被什么困住了?程序运行了吗?你得到了什么结果,你期望得到什么结果?你的问题到底是什么?我得到了你想要做的,但无法得出问题的结论。程序没有运行,我不知道如何检查字符串是否有3个字符,因为我使用的是数组。那么第一步是解决它为什么不运行的问题。首先,请仔细检查所有的开始括号和结束括号。您缺少上一个for循环的开始括号。若要检查字符串是否有3个字符,请使用if语句进行检查。例如:if(str.length()==3)我不知道为什么没有格式化最后的代码块,请如果有人可以编辑它以更正,我无法得到它。提前感谢。非常感谢您的回复!感谢您的回复!
    if(c.length ==3){
                System.out.println(c.length);
                for (int i = 0; i < c.length; i++) {
    
                    for(int j = 0; j < c.length; j++)
                    {
    
                        if(!(c[i] == 'a' || c[i] == 'b')){
                               System.out.println("Error");
                             }
                        else
                            c[i] = strings[i].charAt(j);
                    }
                    System.out.println(c[i]);
                }
            } else System.out.println("Error");
    
    public static void main(String[] args){
    
        Scanner scanner = new Scanner(System.in);
    
        String strings[]= new String[3];
    
        for(int i=0; i<3; i++) //do 3 times
        {
            System.out.println("Enter string: ");
    
            //get user input
            String input = scanner.nextLine();
            strings[i] = input;
    
            //check if input is correct size
            if(input.length()!=3){
                System.out.println("Error: input is wrong size; must be size 3");
            }
    
            //check that the input only consists of 'a' and 'b' characters
            for(int j=0;j<input.length();j++){
                if(input.charAt(j) !='a' && input.charAt(j) != 'b'){
                    System.out.println("Error: input contains invalid characters");
                    break; //after finding an invalid character, break out of inner loop
                }
            }
        }
        scanner.close(); //close the scanner after it is no longer needed
    
        System.out.println("You entered the following strings: ");
    
        for (int i = 0; i < 3; i++) {
            System.out.println(strings[i]);
        }
    }