【问题标题】:Java: Next character in StringJava:字符串中的下一个字符
【发布时间】:2014-11-15 03:05:42
【问题描述】:

我有一个随机字符生成的字符串,它将通过将字符串中的第一个字符与给定字符串的第一个字符相加来加密用户给出的另一个字符串。它工作正常,但是如果用户要输入多个中间有空格的单词,我想选择第一个字符串的下一个字符而不是编码空格本身。那可能吗?这就是我所拥有的:

(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;

}

编辑以获得更好的解释:

我有:

字符串随机 = "WFAZYZAZOHS";

我想对用户输入进行编码:

字符串大写:"YOU GO";

所以,我将采用 Y + L = U 等... 要得到 : “尤森 " 但是我看到 "YOU GO" 中有一个空格,所以我想将其更改为: WFA ZY + YOU GO = UTU SE。

我希望这能得到更好的解释。

【问题讨论】:

  • 您能否更详细地解释您的问题?我不明白你在这里要做什么
  • @DreadHeadedDeveloper,这有帮助吗?
  • 为什么是 Y+L?不应该是 Y+W?
  • 它可以帮助你:stackoverflow.com/questions/8879714/…。如果我理解的话,你可以用数字来表示字母,这样处理总和会更容易。
  • 恐怕我还是不明白。就像亚瑟说的,你为什么要做 Y+L?不应该是 Y+W 吗?

标签: java loops character


【解决方案1】:

最简单的方法可能是使用if 语句仅当字符不是空格时才在循环中运行代码。如果您不想跳过随机字符串中的字符,则需要一个单独的变量来跟踪该字符串中的当前字符索引。

示例:在定义 onetwo 之后将其放入,并将循环的其余部分放入其中:

if(two==' '){
    ...
}

然后,在输出中添加空格:

else{
    newSentence+=" ";
}

【讨论】:

  • 您能否提供一个代码示例来说明您所说的内容?
  • 如果达到空格,是否要跳过随机字符串中的字符以及输入字符串?
  • 我会在问题部分发布该评论,以便 OP 可以看到它
  • @kittycat3141,是的,这正是我的意思。当用户输入达到空格时,我想跳过随机字符串中的一个字符而不是对空格进行编码。
猜你喜欢
  • 2011-12-09
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
相关资源
最近更新 更多