Java 在字符串中检测空格键的问题
所以我在做一个程序,它接受用户输入,当它找到类似于数字的字符时,它会用数字替换它。(例如,它将O替换为0,e替换为3等等)问题在于,当它找到一个空白时,它会把一切都搞糟。您可以通过编译代码来检查输出是否完全混乱Java 在字符串中检测空格键的问题,java,arrays,string,encryption,spaces,Java,Arrays,String,Encryption,Spaces,所以我在做一个程序,它接受用户输入,当它找到类似于数字的字符时,它会用数字替换它。(例如,它将O替换为0,e替换为3等等)问题在于,当它找到一个空白时,它会把一切都搞糟。您可以通过编译代码来检查输出是否完全混乱 /* Program to encrypt text replacing some letters by similar numbers Done by: Gabriel Mello */ import java.util.Scanner; import java.util.Random
/* Program to encrypt text replacing some letters by similar numbers
Done by: Gabriel Mello
*/
import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String input; //Allocating space for user input
char[] output=new char[100000]; //Allocating space for final output
while(true){ // Lets it work as many times as wished
System.out.println("Escribí la frase que quieras transformar"); // Spanish for input your frase
input=sc.next(); //Takes user input
for(int i=0; i<=input.length()-1;i++){ //Iterates over every char in the input
switch(input.charAt(i)){//Checks wether the current digit is valid for replacement,
case 'O': // if it is, it replaces it, if not, it leaves it as it is.
case 'o': output[i]='0';
break;
case 'L':
case 'l':
case 'I':
case 'i': output[i]='1';
break;
case 'Z':
case 'z': output[i]='2';
break;
case 'E':
case 'e': output[i]='3';
break;
case 'A':
case 'a': output[i]='4';
break;
case 'S':
case 's': output[i]='5';
break;
case 'G':
case 'g': output[i]='6';
break;
case 'T':
case 't': output[i]='7';
break;
case 'B':
case 'b': output[i]='8';
break;
case 'P':
case 'p': output[i]='9';
break;
default: output[i]=input.charAt(i);
}
}
System.out.println(output); //Prints the output
for(int i=0;i<=output.length-1;i++){ //Resets the output array
output[i]=' ';
}
}
}
}
/*加密文本的程序,用类似的数字替换一些字母
完成人:加布里埃尔·梅洛
*/
导入java.util.Scanner;
导入java.util.Random;
公共班机{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
字符串输入;//为用户输入分配空间
char[]输出=新字符[100000];//为最终输出分配空间
虽然(真的){//让它工作多少次都可以
System.out.println(“Escribíla frase que quieras transformar”);//西班牙语输入您的frase
input=sc.next();//接受用户输入
对于(int i=0;i扫描仪的输入在空格处分开。因此,如果您键入12 34
,代码看到的第一个输入是12
。它在中运行(int i=0;iAdd示例输入和错误输出在您的问题中您的代码打印了几行新行,这使问题难以解决。请尝试移动System.out.println(输出)
退出while循环。while循环只允许用户多次使用程序,而不必反复运行。忽略它。您是否尝试使用调试器单步检查代码,并检查它遇到空格时发生的情况?尝试使用Eclipse的调试器,但不知道它是如何工作的。虽然如此,它似乎只是在运行以同样的方式编码while循环找到另一个输入“34”并再次通过它运行。
?