字符串oj ---->字符集合

Posted ohana!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串oj ---->字符集合相关的知识,希望对你有一定的参考价值。

题目内容:

 

首先是句题外话,这道题当我打开它的时候是一片空白的,我的大脑也随之一片空白,就感觉,即使这道题的解法很简单,但是,我却不知到如何下手,从哪开始写,直接敲方法?显然不可以,众所周知,只有方法的代码肯定是无法运行的(除了绝大多数进去直接由系统给出类的),所以一下子它和以往的oj题目不一样的地方有很多,有非常多的地方值得去关注

  1. 什么都没有,就相当于一切是空白的,系统只会出入测试用例,而且,这个测试用例进入的方式也不同于别的oj题目,是有参数列表的,因此,难度一下子又上去了,说通俗一点就是,系统会在我们写的代码当中寻找哪里可以将“我的”测试用例放进去测试,所以,第一个点就是需要我们从键盘输入,即就是需要用到Scanner如何使用,如何连续输入等等
  2. 需要编写一个类,这个类里面要去写我们的方法,当然也不能忘了
    public static void main(String[] args)

  3. 再接着,还要输出,到最后,我们会发现,还缺一个东西,那就是导包,最好的建议就是直接导入
    import java.util.*;

解题思路:

  •  题目要求的是不能重复且区分大小写,那我么就直接常见一个新的StringBuilder的类,去将第一次出现的字母保存下来
  • 要判断是不是重复,可以使用contains的方法,检测当前这个字符串里面是否包含这个字符,如果包含,那就跳过,如果没有就是用append方法添加到StringBuilder的尾部
  • 最终将这个字符串转为String类型的即可

解题代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        while(s.hasNext()){
            String str = s.nextLine();
            StringBuilder s1 = new StringBuilder();
            for(int i = 0; i < str.length();i++){
                char ch = str.charAt(i);
                if(!s1.toString().contains(ch + "")){
                    s1.append(ch);
                }
            }
            System.out.println(s1.toString());
        }
    }
}

以上是关于字符串oj ---->字符集合的主要内容,如果未能解决你的问题,请参考以下文章

oj---九度oj---1433

oj---九度oj---1434

oj---九度oj---1015

oj---九度oj---1054

oj--九度oj---1431

oj---九度oj---1078