Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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 如何创建一个;“自动”;矩阵取决于用户';谁的输入?_Java_Matrix - Fatal编程技术网

Java 如何创建一个;“自动”;矩阵取决于用户';谁的输入?

Java 如何创建一个;“自动”;矩阵取决于用户';谁的输入?,java,matrix,Java,Matrix,我是java新手,我真的需要这方面的帮助。我已经读过很多类似的问题,也试过了,但我还是什么都做不了 我想做的是给矩阵一个消息,例如: 如果用户写“Hello guys”,字母会转换成数字,那么这些数字应该放在矩阵3xN上: 你好,世界-->(H=7,e=4,l=11,l=11,o=14,“[空白]=26,g=6,u=21,y=25,s=19) 我已经把信息的一部分转换成了数字,但我还是坚持使用矩阵 这些数字应放在3xN矩阵上: 7 11 6 19 4 14 21 26 11 26

我是java新手,我真的需要这方面的帮助。我已经读过很多类似的问题,也试过了,但我还是什么都做不了

我想做的是给矩阵一个消息,例如: 如果用户写“Hello guys”,字母会转换成数字,那么这些数字应该放在矩阵3xN上:

你好,世界-->(H=7,e=4,l=11,l=11,o=14,“[空白]=26,g=6,u=21,y=25,s=19)

我已经把信息的一部分转换成了数字,但我还是坚持使用矩阵

这些数字应放在3xN矩阵上:

7  11  6   19
4  14  21  26
11 26  25  26 
备用空间应为空白(在本例中为26)

如果有人能帮助我或只是给我一个想法,我将非常感激。

int[]number={1,2,3,4,5,6,7,8,9,10,11,12,13};
int[] numbers = {1,2,3,4,5,6,7,8,9,10,11,12,13};
int n = numbers.length;
int groups = n/3;
int remainder = n%3;
String s1="",s2="",s3="";
for(int i =0;i<groups;i++){
    s1+=" "+String.valueOf(numbers[i*3+0]);
    s2+=" "+String.valueOf(numbers[i*3+1]);
    s3+=" "+String.valueOf(numbers[i*3+2]);
}
if(remainder==1){
    s1+=" "+String.valueOf(numbers[groups*3]);
    s2+=" 26";
    s3+=" 26";
}
if(remainder==2){
    s1+=" "+String.valueOf(numbers[groups*3]);
    s2+=" "+String.valueOf(numbers[groups*3+1]);
    s3+=" 26";
}
System.out.println(s1.strip());
System.out.println(s2.strip());
System.out.println(s3.strip());
int n=数字。长度; int组=n/3; 整数余数=n%3; 字符串s1=“”,s2=“”,s3=“”; 对于(int i=0;i
int[]数字={1,2,3,4,5,6,7,8,9,10,11,12,13};
int n=数字。长度;
int组=n/3;
整数余数=n%3;
字符串s1=“”,s2=“”,s3=“”;

对于(int i=0;i只需计算列数并填写:

int rows = 3;
int cols = (int)Math.ceil((double)s.length() / rows);
int [][] matrix = new int[rows][cols];
for (int i = 0; i < rows * cols; i++) {
    char c = i < s.length() ? s.charAt(i) : ' ';
    matrix[i % rows][i / rows] = !Character.isAlphabetic(c) ? 26 : (Character.isUpperCase(c) ? c - 'A' : c - 'a');
}
int行=3;
int cols=(int)Math.ceil((double)s.length()/行);
int[][]矩阵=新的int[行][cols];
对于(int i=0;i
只需计算列数并填写:

int rows = 3;
int cols = (int)Math.ceil((double)s.length() / rows);
int [][] matrix = new int[rows][cols];
for (int i = 0; i < rows * cols; i++) {
    char c = i < s.length() ? s.charAt(i) : ' ';
    matrix[i % rows][i / rows] = !Character.isAlphabetic(c) ? 26 : (Character.isUpperCase(c) ? c - 'A' : c - 'a');
}
int行=3;
int cols=(int)Math.ceil((double)s.length()/行);
int[][]矩阵=新的int[行][cols];
对于(int i=0;i
  • 根据字符串的长度定义列数
  • 创建矩阵3*N
  • 使用转换规则设置矩阵的单元格(先按列,然后按行):
    • 如果字符串中的字符是空格或已到达输入字符串的末尾,请使用26
    • 否则,请将当前字符的小写差异与“a”一起使用
    实施示例:

    Scanner-in=新的扫描仪(System.in);
    字符串str=in.nextLine().toLowerCase();
    int cols=(int)(Math.ceil(str.length()/3.0));
    int[][]矩阵=新的int[3][cols];
    int x=0;
    for(int i=0;i=str.length()| | str.charAt(x)=''26:str.charAt(x)-'a';
    x++;
    }
    }
    对于(int[]行:矩阵){
    System.out.println(Arrays.toString(row));
    }
    
    对于输入“Hello guys”,输出为:

    [7, 11, 6, 18]
    [4, 14, 20, 26]
    [11, 26, 24, 26]
    
    注:
    u
    应编码为20,
    y
    应编码为24,
    s
    应编码为18

    int[] arr =  {7,4,11,11,14,26,6,21,5,19} // your array of calculated values from the input string;
    int count = 0;
    int n = (int) Math.ceil((double)arr.length/3);
    int[][] matrix = new int[3][n];
        for (int col=0; col<n; col++) {
            for(int row=0; row< 3; row++ ) {
                int val = count < arr.length ? arr[count++] : 26;
                matrix[row][col] = val;
            }
        }
    
  • 根据字符串的长度定义列数
  • 创建矩阵3*N
  • 使用转换规则设置矩阵的单元格(先按列,然后按行):
    • 如果字符串中的字符是空格或已到达输入字符串的末尾,请使用26
    • 否则,请将当前字符的小写差异与“a”一起使用
    实施示例:

    Scanner-in=新的扫描仪(System.in);
    字符串str=in.nextLine().toLowerCase();
    int cols=(int)(Math.ceil(str.length()/3.0));
    int[][]矩阵=新的int[3][cols];
    int x=0;
    for(int i=0;i=str.length()| | str.charAt(x)=''26:str.charAt(x)-'a';
    x++;
    }
    }
    对于(int[]行:矩阵){
    System.out.println(Arrays.toString(row));
    }
    
    对于输入“Hello guys”,输出为:

    [7, 11, 6, 18]
    [4, 14, 20, 26]
    [11, 26, 24, 26]
    
    注:
    u
    应编码为20,
    y
    应编码为24,
    s
    应编码为18。

    int[]arr={7,4,11,11,14,26,6,21,5,19}//输入字符串中计算值的数组;
    
    int[] arr =  {7,4,11,11,14,26,6,21,5,19} // your array of calculated values from the input string;
    int count = 0;
    int n = (int) Math.ceil((double)arr.length/3);
    int[][] matrix = new int[3][n];
        for (int col=0; col<n; col++) {
            for(int row=0; row< 3; row++ ) {
                int val = count < arr.length ? arr[count++] : 26;
                matrix[row][col] = val;
            }
        }
    
    整数计数=0; int n=(int)Math.ceil((double)arr.length/3); int[][]矩阵=新的int[3][n]; 对于(int col=0;col
    int[]arr={7,4,11,11,14,26,6,21,5,19}//您的输入字符串计算值数组;
    整数计数=0;
    int n=(int)Math.ceil((double)arr.length/3);
    int[][]矩阵=新的int[3][n];
    
    对于(int col=0;col您应该包括您已经编写的代码。您应该包括您已经编写的代码。非常感谢!!这一个真的做到了:)非常感谢!!这一个真的做到了:)