我正在开发一个小应用程序,例如,我得到了一些字符串“MRUGDQ”和一个移位值3。然后我将每个字母向左移动3,结果是“JORDAN”。例如,M将被J取代,R将被O取代,依此类推。
所以现在这就是我想使用的方法,但我想知道这是否有效,我可以改进我的解决方案吗?
我所做的假设:
我假设我的字符串将是大写A到Z字母或小写A到Z字母,因此ascii范围分别为65到90和97到122。
Pesudo代码
>
将移位值添加到char ascii值
if new ascii value <= 90
replace old letter by new letter
else
int diff = new ascii value - 90
while (new ascii value <= 90) {
decrement diff value by 1
increment new ascii value by 1
}
add remaining diff to 65 and set that as new ascii value
replace old letter by new letter
请让我知道我的方法是否正确,或者我是否可以更有效。
我看不出有什么需要改进的地方,只是您对新字符的处理超出了范围。如果要将重叠量“滚动”回范围的开始处,则只需计算:(x%90)64(*)(在添加移位值后,x是ascii值)。
例子:
'Y' (89) + 3 = '\' 92
92 % 90 = 2
2 + 64 = 'B' (66)
您需要从64开始,以避免跳过值为65的
'A'
。
(*)一般公式为:
(值%上限)(下限-1)
。您还可以使用(值%上限1)下限。
我是一个机器人初学者。我陷入了一个问题。我有三,我需要对它们进行验证。当我进行验证时,即使我在运行应用程序时没有输入任何值,EditText 也有一个值。为了检查哪个值是否存在,我使用 打印了这些值。 这是打印在日志中 这些价值观从何而来?请帮我解决这个问题。 提前感谢:)
问题内容: 我需要从超过2GB的文件中更新最后一行,这些文件由无法读取的文本行组成。目前,它可以通过逐行循环工作。但是,我想知道是否有任何编译的库可以更有效地实现这一目标?谢谢! 目前的方法 问题答案: 更新:使用ShadowRanger的答案。它更短且更健壮。 对于后代: 读取文件的最后N个字节,然后向后搜索换行符。
问题内容: 将File写入javax.servlet.ServletOutputStream的最有效方法是什么? 编辑: 如果使用NIO会更有效吗? 问题答案: 哪里是的FileInputStream和是。 IOUtils是Apache Commons中 Commons IO 模块的实用程序。
我想破译基于频率分析的文本,编程不是问题,但有一些数学困难。 (别担心,不是为了黑客攻击,我想试试十二宫杀手340密码,但问题只是关于破译http://zodiackillerciphers.com/wiki/images/7/7d/340-cipher-hi-resolution.jpg的一般问题,而不是密码的其他问题。) 我已经把它分解为5个简短的问题,都与成本函数有关,以表明我的努力,简短的
我有一个包含多个属性的属性文件。多个对多个(我们的)产品有效,有些只对一个产品有效(不能通过属性名称区分)。因此,在一个产品基于ANT的构建过程中,我想将包含所有属性的原始文件复制到产品特定文件中,跳过适用于其他产品的部分。我可以想象使用一些开始和结束标记,例如。 对于产品 1,我想获取文件 和产品2 ANT是否可能实现这样的事情,或者我应该编写自己的Java帮助程序类?
问题内容: 我很好奇,最有效的方法是读取文本文件(不必担心大小,它很小也可以),然后将其内容转储到一个供显示的文件中。 例如,我可以以某种方式在单个字符串中使用整个文件,然后使用它来显示它吗?还是应该逐行或字节读取数组,然后将它们填充到StringBuffer中,然后将其设置为文本区域? 谢谢 问题答案: 您可以使用并将其传递给。只是这样做: Java 7- 尝试资源块 Java 6- 最后尝试块