字符串的Java模算法

字符串的Java模算法,java,Java,我正在为我的大学项目创建一个简单的Java程序,但我无法生成数组字符串模。该程序只需获取一个字符串,并对数组中的字母从+5或-5进行加密或解密。但是,如果我在输入字符串中输入数组中最后5个字母(5,6,7,8,9)中的任何一个,它将不返回任何内容,只返回数组开头的字母(a,b,c,d,e) 我必须使用的程序是非常原始的,只允许代码是某种特定的方式,因此它是这样编码的 int i; int n; int x; int inputValue; int intArrayLength; int intI

我正在为我的大学项目创建一个简单的Java程序,但我无法生成数组字符串模。该程序只需获取一个字符串,并对数组中的字母从+5或-5进行加密或解密。但是,如果我在输入字符串中输入数组中最后5个字母(5,6,7,8,9)中的任何一个,它将不返回任何内容,只返回数组开头的字母(a,b,c,d,e)

我必须使用的程序是非常原始的,只允许代码是某种特定的方式,因此它是这样编码的

int i;
int n;
int x;
int inputValue;
int intArrayLength;
int intInputLength;
String array;
String inputString;
String newInputString;
String outputString;

System.out.print("Would you like to: 1 = Encrypt - 2 = Decrypt");
System.in.read(inputValue);
System.out.println("Would you like to: 1 = Encrypt - 2 = Decrypt [ " + inputValue + " ]");
System.out.print("Please enter string:");
System.in.read(inputString);
System.out.println("Please enter string: [ " + inputString + " ]");

array = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789";
intArrayLength = length(array);
intInputLength = length(inputString);

if (intInputLength != 0)
   {
   if (inputValue == 1)
      {



      System.out.println("Please wait encrypting...");

      newInputString = "";
      for (i=0; i<=intInputLength; i++)
         {
         for (n=0; n<=intArrayLength; n++)
            {
            if (inputString[i] == array[n])
               {
               x = (n+5);
               if (x > intArrayLength)
                  {
                  x = x - intArrayLength;
                  newInputString = newInputString + array[x];
                  }
               else
                  {
                  newInputString = newInputString + array[x];
                  }
               }
            }
         }

      System.out.print("Would you like to reverse the string? 1 = Yes - 2 = No");
      System.in.read(inputValue);
      System.out.println("Would you like to reverse the string? 1 = Yes - 2 = No [ " + inputValue + " ]");

      if (inputValue == 1)
         {
         outputString = newInputString;
         newInputString = "";
         for (i=intInputLength-1; i>=0; i--)
            {
            newInputString = newInputString + outputString[i];
            }

         outputString = newInputString;
         System.out.print("Encrypted String: [ " + outputString + " ]");
         System.out.println();

         }
      else
         {
         outputString = newInputString;
         System.out.print("Encrypted String: [ " + outputString + " ]");
         System.out.println();
         }

      inputString = "";
      newInputString = "";



      }
   else
      {



      System.out.print("Has the string been reversed? 1 = Yes - 2 = No");
      System.in.read(inputValue);
      System.out.println("Has the string been reversed? 1 = Yes - 2 = No [ " + inputValue + " ]");

      if (inputValue == 1)
         {

         newInputString = "";
         for (i=intInputLength-1; i>=0; i--)
            {
            newInputString = newInputString + inputString[i];
            }

         inputString = newInputString;
         }

      System.out.println("Please wait decrypting...");

      newInputString = "";
      for (i=0; i<=intInputLength; i++)
         {
         for (n=0; n<=intArrayLength; n++)
            {
            if (inputString[i] == array[n])
               {
               x = (n-5);
               if (x <= 0)
                  {
                  x = x + intArrayLength;
                  newInputString = newInputString + array[x];
                  }
               else
                  {
                  newInputString = newInputString + array[x];
                  }
               }
            }
         }

      outputString = newInputString;
      System.out.print("Decrypted String: [ " + outputString + " ]");
      System.out.println();

      inputString = "";
      newInputString = "";



      }
   }
inti;
int n;
int x;
int输入值;
整数整数长度;
int输入长度;
字符串数组;
字符串输入字符串;
字符串newInputString;
字符串输出字符串;
System.out.print(“您是否希望:1=加密-2=解密”);
系统输入读取(输入值);
System.out.println(“是否希望:1=加密-2=解密[“+inputValue+”]”);
系统输出打印(“请输入字符串:”);
系统输入读取(输入字符串);
System.out.println(“请输入字符串:[“+inputString+”]”);
array=“abcdefghijklmnopqrstuvwxyzabefghijklmnopqrstuvxyz 0123456789”;
intArrayLength=长度(阵列);
intInputLength=长度(inputString);
如果(输入长度!=0)
{
如果(inputValue==1)
{
System.out.println(“请等待加密…”);
newInputString=“”;
对于(i=0;i=0;i--)
{
newInputString=newInputString+outputString[i];
}
outputString=newInputString;
System.out.print(“加密字符串:[“+outputString+”]);
System.out.println();
}
其他的
{
outputString=newInputString;
System.out.print(“加密字符串:[“+outputString+”]);
System.out.println();
}
inputString=“”;
newInputString=“”;
}
其他的
{
System.out.print(“字符串是否已反转?1=是-2=否”);
系统输入读取(输入值);
System.out.println(“字符串是否已反转?1=Yes-2=No[“+inputValue+”]);
如果(inputValue==1)
{
newInputString=“”;
对于(i=intInputLength-1;i>=0;i--)
{
newInputString=newInputString+inputString[i];
}
inputString=newInputString;
}
System.out.println(“请等待解密…”);
newInputString=“”;

对于(i=0;i如果
n+5>=array.length
,则只需减去
array.length

int indexOfLetterToAppend = n + 5;
if (indexOfLetterToAppend >= array.length) {
    indexOfLetterToAppend -= array.length;
}
类似地,如果
n-5<0
,则只需添加
array.length

int indexOfLetterToAppend = n - 5;
if (indexOfLetterToAppend < 0) {
    indexOfLetterToAppend += array.length;
}
int indexOfLetterToAppend=n-5;
if(indexOfLetterToAppend<0){
indexOfLetterToAppend+=数组长度;
}
请注意,在循环中连接到
字符串
效率非常低。它会创建大量临时
字符串
StringBuilder
实例。使用
StringBuilder
进行追加,直到结束,然后在
StringBuilder
上调用
toString()


还请注意,如果
数组
字符串
,则不能使用
数组[index]
。必须使用
数组.charAt(index)
,或将
字符串
转换为字符数组。

如果
n+5是>=array.length
,则只需减去
array.length

int indexOfLetterToAppend = n + 5;
if (indexOfLetterToAppend >= array.length) {
    indexOfLetterToAppend -= array.length;
}
类似地,如果
n-5<0
,则只需添加
array.length

int indexOfLetterToAppend = n - 5;
if (indexOfLetterToAppend < 0) {
    indexOfLetterToAppend += array.length;
}
int indexOfLetterToAppend=n-5;
if(indexOfLetterToAppend<0){
indexOfLetterToAppend+=数组长度;
}
请注意,在循环中连接到
字符串
效率非常低。它会创建大量临时
字符串
StringBuilder
实例。使用
StringBuilder
进行追加,直到结束,然后在
StringBuilder
上调用
toString()


还请注意,如果
数组
字符串
,则不能使用
数组[index]
。必须使用
数组.charAt(index)
,或将
字符串
转换为字符数组。

让我们为
循环使用第一个

array = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789";   

newInputString = ""; 

for (i=0; i<=intInputLength; i++)          
{          \
    for (n=0; n<=intArrayLength; n++)             
    {             
        if (inputString[i] == array[n])                
        {                
          newInputString = newInputString + array[(n+5)];                
        }
    } 
}
array=“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz 0123456789”;
newInputString=“”;

对于(i=0;i让我们以您的第一个
for
循环:

array = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789";   

newInputString = ""; 

for (i=0; i<=intInputLength; i++)          
{          \
    for (n=0; n<=intArrayLength; n++)             
    {             
        if (inputString[i] == array[n])                
        {                
          newInputString = newInputString + array[(n+5)];                
        }
    } 
}
array=“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz 0123456789”;
newInputString=“”;

对于(i=0;i他们谢谢你!我仍然收到奇怪的错误,如果你有时间查看,我已经更新了我的代码。谢谢
if(x>intarraylelength)
应该更改为
if(x>=intarraylelength)
嘿,谢谢!我仍然收到奇怪的错误,如果你有时间查看,我已经更新了我的代码。谢谢
if如果(x>=intarraylelength)
应更改为