首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从string - java中删除字符串中的数目为偶数对的字符重复出现的字符

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

Stack Overflow用户
提问于 2018-10-06 07:22:22
回答 1查看 60关注 0票数 0

我是java的初学者,我有这个问题:

**Q01 7标记编写一个java程序,该程序将字符串作为输入,并使用EvenPairs(str)方法检查每个字符(即字母表)是否存在偶数对。示例测试用例

输入:“3gy41d21y363”

输出:

  • 3 - False
  • g - false
  • y - true
  • 4 - false
  • 1 - true
  • d -false H212

正如您在输出中看到的,每个字符出现只打印一次,即使它是重复的,我解决了这个问题,直到这一步我找不到一个解决方案来打印字符只打印一次,结果是真或假

这是我的代码:

代码语言:javascript
复制
    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; 
    }

}

}

这是输出:

输入字符串: 3gy41d21y363

3-错误

g- False

y- true

4-错误

1-真

d- False

2- False

1-真

y- true

3-错误

6- False

3-错误

等待您的帮助!!谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-06 07:53:03

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

代码语言:javascript
复制
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;
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52674360

复制
相关文章

相似问题

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