Java “更改字符串的更好方法”;abc..z";至;bcd..a“是什么;?
我创建了这段代码,用于查看字符串标记并对其进行格式化,以便每个字符都按一个字符移动。字符均为小写,从a到z。Java “更改字符串的更好方法”;abc..z";至;bcd..a“是什么;?,java,string,format,token,Java,String,Format,Token,我创建了这段代码,用于查看字符串标记并对其进行格式化,以便每个字符都按一个字符移动。字符均为小写,从a到z。 所以如果我的输入是 abcz 输出为 bcda 现在我将所有字母表添加到arraylist中,代码确定每个字符的索引并向其中添加一个。若找到z,它将打印一个,这样arraylist的索引就不会超出范围 List<String> letters = new ArrayList<String>(); String alp = "abcdefghijk
所以如果我的输入是
abcz
输出为
bcda 现在我将所有字母表添加到arraylist中,代码确定每个字符的索引并向其中添加一个。若找到z,它将打印一个,这样arraylist的索引就不会超出范围
List<String> letters = new ArrayList<String>();
String alp = "abcdefghijklmnopqrstuvwxyz";
for (int i = 0; i<26; i++)
{
letters.add(Character.toString(alp.charAt(i)));
}
String token = sc.next();
for (int i = 0; i<token.length(); i++)
{
if (letters.get(letters.indexOf(Character.toString(token.charAt(i)))).equals("z"))
{
System.out.print("a");
}
else
{
System.out.print(letters.get(letters.indexOf(Character.toString(token.charAt(i)))+1));
}
}
List letters=new ArrayList();
字符串alp=“abcdefghijklmnopqrstuvxyz”;
对于(inti=0;i一个简单的循环加上一点模运算就可以了,为什么还要处理这么多对象呢
for(int i = 0; i < token.length(); ++i) {
System.out.print(('a' + (token.charAt(i) + 1 - 'a')%('z' - 'a' + 1)));
}
for(int i=0;i
我们将偏移量从'a'
增加1,然后取余数模26,得到0到25之间的偏移量。一个简单的循环加上一点模运算就可以了,为什么要处理这么多对象呢
for(int i = 0; i < token.length(); ++i) {
System.out.print(('a' + (token.charAt(i) + 1 - 'a')%('z' - 'a' + 1)));
}
for(int i=0;i
我们将偏移量从'a'
增加1,并取余数模26,以获得0到25范围内的偏移量。有一种实用方法可以为您做到这一点:
StringUtils.replaceChars(input, "abcdefghijklmnopqrstuvwxyz", "bcdefghijklmnopqrstuvwxyza");
虽然有这么大的参数,但它看起来有点丑陋
尽管如此,它只是一行代码,我认为最好的代码是其他人的代码(这意味着,如果有库可以这样做,就倾向于使用它)。有一种实用方法可以为您做到这一点:
StringUtils.replaceChars(input, "abcdefghijklmnopqrstuvwxyz", "bcdefghijklmnopqrstuvwxyza");
虽然有这么大的参数,但它看起来有点丑陋
尽管如此,这只是一行代码,我认为最好的代码是其他人的代码(这意味着,如果有库可以这样做,就倾向于使用它).那么你的问题是什么?你想要什么样的改进:更少的代码,更好的性能,更好的编码风格?你的实现有没有遇到任何问题?上下文是什么,你需要这个函数做什么?那么你的问题是什么?你想要什么样的改进:更少的代码,更好的性能,等等ter编码风格?您的实现是否遇到任何问题?上下文是什么,您需要此函数做什么?Troo dat,但26较短。但是@vladr的解决方案允许更大的灵活性,例如,如果他想将其升级到rot13或类似的更“高级”的版本encryption.Troo dat,但26较短。但@vladr的解决方案允许更大的灵活性,例如,如果他想将其升级到rot13或类似的更“高级”加密。