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