Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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_Arrays_String_Encryption_Spaces - Fatal编程技术网

Java 在字符串中检测空格键的问题

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

所以我在做一个程序,它接受用户输入,当它找到类似于数字的字符时,它会用数字替换它。(例如,它将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;
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”并再次通过它运行。