Java 字符串加密代码优化:解决字符分隔输出问题

本文分析了一段 Java 字符串加密代码,该代码旨在对输入的字符串进行加密,但存在一个问题:加密后的字符被分隔输出,而不是输出完整的加密字符串。

**问题代码:**javaimport java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str=sc.next(); char []a=str.toCharArray(); int k=sc.nextInt(); for(int i=0;i<a.length;i++) { if (Character.isUpperCase(a[i])) { int n =a[i] + k % 26; if (n > 90) n -= 26; a[i] = (char) n; } if (Character.isLowerCase(a[i])) { int n =a[i] + k % 26; if (n > 122) n -= 26; a[i] = (char) n; } System.out.print(a[i]); // 问题所在:每次循环都输出一个字符 } }}

问题分析:

代码中,System.out.print(a[i]); 语句位于循环内部,导致每次循环都会输出一个字符,而不是在加密操作完成后一次性输出整个字符串。

解决方案:

将输出操作 System.out.println(a); 移到循环之外,即可在加密操作完成后一次性输出整个加密字符串。

**优化后的代码:**javaimport java.util.Scanner;

public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); char[] a = str.toCharArray(); int k = sc.nextInt(); for(int i = 0; i < a.length; i++) { if (Character.isUpperCase(a[i])) { int n = a[i] + k % 26; if (n > 90) n -= 26; a[i] = (char) n; } if (Character.isLowerCase(a[i])) { int n = a[i] + k % 26; if (n > 122) n -= 26; a[i] = (char) n; } } System.out.println(a); // 优化:循环结束后输出完整字符串 }}

通过将输出操作移到循环之外,我们解决了字符分隔输出的问题,确保了代码能够按照预期加密并输出字符串。

Java 字符串加密代码优化:解决字符分隔输出问题

原文地址: http://www.cveoy.top/t/topic/B2k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录