我有一个由随机字符生成的字符串,它将加密用户给出的另一个字符串,方法是将String中的第一个字符与给定字符串的第一个字符相加。它工作正常,但如果用户输入多个单词之间有空格,我想选择第一个String的下一个字符而不是编码空间本身。那可能吗?这就是我所拥有的:
(random是编码字符串,sentenceUpper是用户给出的字符串)
public static void encrypt(String sentenceUpper){
String newSentence = "";
for(int i = 0; i < sentenceUpper.length(); i++){
char one = random.charAt(i);
char two = sentenceUpper.charAt(i);
if(one < 'A' || one > 'Z'){
two = sentenceUpper.charAt(1 + i);}
char result = (char)((one + two)%26 + 'A');
newSentence += "" + result;
}
编辑更好的解释:
我有:
字符串随机=&#34; WFAZYZAZOHS&#34 ;;
我想编写用户输入代码:
String upperCase:&#34;你去&#34 ;;
所以,我要采取Y + L = U等... 要得到 : &#34; UTUSEN &#34; 但是,我发现在#34;你去的地方有一个空间。 ,所以我想把它改成: WFA ZY +你GO = UTU SE。
我希望能更好地解释一下。
答案 0 :(得分:0)
执行此操作的最简单方法可能是使用if
语句仅在字符不是空格时才在循环中运行代码。如果您不想跳过随机字符串中的字符,则需要一个单独的变量来跟踪该字符串中的当前字符索引。
示例:在定义one
和two
之后放置它并将其余部分放在其中:
if(two==' '){
...
}
然后,在输出中添加空格:
else{
newSentence+=" ";
}