首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中,如何将输出到codeRunner中的单词之间不留空格地返回?

在java中,如何将输出到codeRunner中的单词之间不留空格地返回?
EN

Stack Overflow用户
提问于 2021-03-15 23:19:29
回答 1查看 31关注 0票数 0

使用caesar-cipher算法将不含空格的字符串输出到coderunner的写入算法。讲师提到的string+= "“没有添加空格,因为ASCI字符32向字符串添加了一个空格。我不知道如何将其实现到代码中,因为我混淆了string.length概念以及如何在此代码中使用字符串+=。输入encrypt2(“我们是人吗”,2)输出: ctgygjwocp?

代码语言:javascript
复制
public class Tester {
        
        public String encrypt(String plainText, int offset) {
                String cipher = new String("");
                char[] arr = plainText.toCharArray();       
                        for (int i = 0; i<arr.length; i++){     
                            int numericalVal = (int) arr[i];   
                            if(Character.isUpperCase(arr[i])) {    
                                cipher += (char) (((numericalVal+offset-65) %26) +65);   
                            } else if (numericalVal == 32){
                                cipher+=arr[i];
                            } else {cipher += (char) (((numericalVal+offset-97) %26) +97);  
                            } 
                        }
                        return cipher;
                }
              
        public static void main(String[] args) {
                    String cipher +="";
                     system.out.println("are we human") }
                          
                        }
EN

回答 1

Stack Overflow用户

发布于 2021-03-15 23:47:44

代码语言:javascript
复制
public static String encrypt(String plainText, int offset) {
    String cipher = "";

    char[] arr = plainText.toCharArray();
    for (char c : arr) {
        if (Character.isUpperCase(c)) {
            cipher += (char) (((c + offset - 65) % 26) + 65);
        } else if (c == 32){
            cipher+="";   //<---- append nothing if space
        } else {
            cipher += (char) (((c + offset - 97) % 26) + 97);
        }
    }
    return cipher;
}

您也可以执行plainText = plainText.replaceAll(“","");,而不必检查是否有32个字符。

代码语言:javascript
复制
public static String encrypt(String plainText, int offset) {
    String cipher = "";
    
    plainText = plainText.replaceAll(" ", "");

    char[] arr = plainText.toCharArray();
    for (char c : arr) {
        if (Character.isUpperCase(c)) {
            cipher += (char) (((c + offset - 65) % 26) + 65);
        } else {
            cipher += (char) (((c + offset - 97) % 26) + 97);
        }
    }
    return cipher;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66640774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档