我想从字符串中删除'。'(点)字符的回文褪色了

时间:2018-10-10 17:16:54

标签: java

我可以根据需要获取输出,但是当测试用例是

  

kaj.jak

我的输出为

  

kaj.jak

但是我想要的是

  

kajjak

在这里我要删除'。'。我将如何去做呢? 下面是我的代码。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String strstr = s.next();
        int len = strstr.length();
        char[] str = strstr.toCharArray();
        int flag = 0;
        for (int i = 0; i < len / 2; i++) {
            if (str[i] != str[len - 1 - i]) {
                if (str[i] == '.')
                    str[i] = str[len - 1 - i];
                else if (str[len - 1 - i] == '.')
                    str[len - 1 - i] = str[i];
                else
                    flag = 1;
            } else if (str[i] == '.' && str[len - 1 - i] == '.') {
                str[i] = '';//one more thing here i am getting error as empty character literals
                str[len - 1 - j] = '';
            }
        }
    }
    if(flag == 1)
        System.out.println(-1);
    else
        System.out.println(str);
    }
}

3 个答案:

答案 0 :(得分:1)

对您的问题不太清楚,但是如果您只是想删除.,请使用以下代码

strstr = strstr.replace(".", "");

答案 1 :(得分:0)

我想这就是你的样子: 她的“ \ 0”也是空字符;对于某些编译器,它可能会显示空间。

导入java.util.Scanner;

公共类主要{

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String strstr = s.next();
        int len = strstr.length();
        char[] str = strstr.toCharArray();
        int flag = 0;
        for (int i = 0; i < (len / 2)+1; i++) {
            if (str[i] != str[len - 1 - i]) {
                if (str[i] == '.')
                    str[i] = str[len - 1 - i];
                else if (str[len - 1 - i] == '.')
                    str[len - 1 - i] = str[i];
                else
                    flag = 1;
            } else if (str[i] == '.' && str[len - 1 - i] == '.') {
                str[i] = '\0';//one more thing here i am getting error as empty character literals
               str[len - 1 - i] = '\0';
            }
        }

    if(flag==1)
                   System.out.println(-1);
    else
            System.out.println(str);
}

}

答案 2 :(得分:0)

如果您只想删除。从您的char字符串中,您可以执行以下操作:

Scanner s = new Scanner(System.in);
    System.out.println("Enter your Strings: ");
    char[] str = s.next().toCharArray();
    int flag = 0;
    for (int i = 0; i < str.length; i++) {
        if(str[i] == '.'){
            str[i] = 0;
        }
    }
    for(int i = 0; i < str.length; i++){
        if(str[i] == '.') 
            flag = 1;
        else
            flag = 0;
    }
if(flag == 1)
    System.out.println(-1);
else
    System.out.println(str);

}

编辑:
顺便说一句,您在''中使用str[len - 1 - i] = '',这是错误的,请使用0而不是char接受值而不是字符串