为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中删除字符串重复出现字符中的字符串偶数对字符 - java

从字符串中删除字符串重复出现字符中的字符串偶数对字符 - java

慕桂英546537 2021-10-28 16:58:36
我是java初学者,我有这个问题:**Q01 [ 7 分] 编写一个java 程序,输入字符串,使用EvenPairs(str) 方法检查每个字符(即字母表)是否存在偶数对。示例测试用例输入:“3gy41d21y363”输出:3 – 错误g – 假y – 真4 – 假1 – 真d – 假正如您在输出中看到的,即使重复出现的每个字符也只打印一次,我解决了这个问题,直到这一步我找不到只打印字符 1 次的解决方案,结果是真还是假这是我的代码:    package evenpairornot;import java.util.Scanner;public class EvenPairOrNot {static Scanner input = new Scanner(System.in);public static void main(String[] args) {    System.out.print("Enter a string: ");    String s1=input.nextLine();    EvenPairs(s1);}public static void EvenPairs(String s){    char [] chs=s.toCharArray();    int count=0;    for (int i = 0; i <chs.length; i++) {        for (int j = 0; j <chs.length; j++) {            if (chs[i]==chs[j]){                count++;             }            }         if(count%2==0)            System.out.println(s.charAt(i)+"- true");            else            System.out.println(s.charAt(i)+"- False");        count=0;     }}}这是输出:输入一个字符串:3gy41d21y3633- 错误g- 错误y-真4- 错误1-真d-错误2- 错误1-真y-真3- 错误6- 错误3- 错误等待你的帮助!!谢谢你
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这是代码。基本上在所有字符数完之后。在打印之前,我向后看以确保它不是重复的。这里有很大的优化空间,比如在计数之前进行检查,或者可以只计算 i 之后的字符而不是计算所有字符。


public static void EvenPairs(String s) {


    char[] chs = s.toCharArray();

    int count = 0;


    for (int i = 0; i < chs.length; i++) {

        for (int j = 0; j < chs.length; j++) {

            if (chs[i] == chs[j]) {

                count++;

            }

        }


        boolean shouldPrint = true;  

        for (int k = i - 1; k >= 0; k--) {  //loop though each character before the current one to check if it was already printed. 

            if (chs[k] == chs[i]) {         //if we it was already printed don't print.

                shouldPrint = false;

                break;

            }

        }


        if (shouldPrint) {

            if (count % 2 == 0)

                System.out.println(s.charAt(i) + "- true");

            else

                System.out.println(s.charAt(i) + "- False");

        }


        count = 0;

    }


}


查看完整回答
反对 回复 2021-10-28
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信