Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/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_String - Fatal编程技术网

Java 按特定值增加字符串中的字符

Java 按特定值增加字符串中的字符,java,string,Java,String,假设我想取一个字符串,将每个字符(包括空格)增加+n,然后打印出新字符串。例如: 字符串1=‘小心’ n=7 因此字符串2将='svvrgvba' 这有意义吗?不管怎么说,我不知道如何在这里起步。在将原始字符串的值增加n之前,是否需要将其拆分为组成字符?或者我可以使用类似于string.charAt(0)+n的东西吗?看看: 如果在每个字符中添加7,您将获得svvrgvba。但是你应该注意这样的情况,比如将7添加到t(你实际上在z之后得到一个十进制值,在这种情况下,你应该将它切换到a)。你正在寻

假设我想取一个字符串,将每个字符(包括空格)增加+n,然后打印出新字符串。例如:

字符串1=‘小心’

n=7

因此字符串2将='svvrgvba'

这有意义吗?不管怎么说,我不知道如何在这里起步。在将原始字符串的值增加
n
之前,是否需要将其拆分为组成字符?或者我可以使用类似于
string.charAt(0)+n的东西吗?

看看:


如果在每个字符中添加
7
,您将获得
svvrgvba
。但是你应该注意这样的情况,比如将
7
添加到
t
(你实际上在
z
之后得到一个十进制值,在这种情况下,你应该将它切换到
a
)。

你正在寻找的是“ROT7”,这是维基百科关于ROT13的文章凯撒编码使用的

实际上,您可以单独查看每个字符并循环遍历它们,向每个字符添加值,就像Maroun告诉您的那样:)

String s1=“look out”;
int n=7;
char[]c=s1.toCharArray();
字符串f=“”;
对于(inti=0;i试试这个

int n = 7;
n = n%26; //This will solve your problem if n is a large number like 1000
String str = "look out";
char[] arr = str.toCharArray();
int ascii = 0; 
int newAscii = 0;
String newStr ="";
char c;
for(int i=0; i<arr.length; i++) {
  ascii = arr[i];
  if(ascii == 32)
    newAscii = 97+n-1;
  else if((ascii+n)>122)
    newAscii = 97+(n-1-(122-ascii));
  else
    newAscii = ascii+7;
  c = (char)newAscii;
  newStr += c;
}
System.out.println(newStr);

你需要做的第一件事是定义在“z”+1发生的事情。我将你的问题重新标记为
C#
,假设这就是“CS”的意思。如果我错了,请随意更正,但请不要忘了正确标记你的问题。本网站涵盖所有编程语言和技术。哈…“CS”是“计算机科学”,不是吗?CS=计算机科学。实际上是Java学生。:-)你还没有回答@deceze的问题,谢谢。是的,但是如果n=10000或其他什么呢?您可以使用n%26来计算每个字母的增量。
String s1="look out";
int n=7;
char[] c= s1.toCharArray();
String f="";
for(int i=0 ; i<s1.length() ; i++) {
    if(c[i]==' ' || c[i]=='z'){
        c[i]= 'a';
    for(int j=1 ; j<n; j++){
c[i]++;
}

}
else{
     for(int j=0 ; j<n; j++){
    c[i]++;
    if(c[i]=='z'){

    c[i]= 'a';
    c[i]--;

}
}
}

f += c[i];
}
SOP(f);
int n = 7;
n = n%26; //This will solve your problem if n is a large number like 1000
String str = "look out";
char[] arr = str.toCharArray();
int ascii = 0; 
int newAscii = 0;
String newStr ="";
char c;
for(int i=0; i<arr.length; i++) {
  ascii = arr[i];
  if(ascii == 32)
    newAscii = 97+n-1;
  else if((ascii+n)>122)
    newAscii = 97+(n-1-(122-ascii));
  else
    newAscii = ascii+7;
  c = (char)newAscii;
  newStr += c;
}
System.out.println(newStr);
else if(ascii<=90)
    {
        if((ascii+n)>90) 
          newAscii = 65+(n-1-(90-ascii));
        else
          newAscii = ascii+n;
    }