【数据结构刷题Java】字符集合

字符集合

将一个字符串中出现的字符输出。不输出重复的元素。

下面是题目的地址:[字符集合](字符集合__牛客网 (nowcoder.com))

解法一(使用Java的库函数)

Java提供的方便的库函数真的是太好用了,其中的contain函数可以轻易的判断字符串中是不是包含某个字符。

具体的操作解释在注释中

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextLine()){
            String str=sc.nextLine();
 			//建立一个stringbuffer字符串
            StringBuffer sb=new StringBuffer();
            for(int i=0;i<str.length();i++){
                //先将字符串转变成字符
                char ch=str.charAt(i);
                //然后调用contains函数,因为StringBuffer不含有contains函数,所以使用
                //toString函数转化成String后再进行调用
                //因为contains函数只能接受String类型的参数,所以将ch加上引号后变成String
                if(!sb.toString().contains(ch+"")){
                    sb.append(ch);
                }
            }
            System.out.println(sb);
        }
    }
}

解法二(使用数组来进行标记)

另外开辟一个数组来记录,如果一个字符的对应数组位置是0,就将该数组位置标志为1,并将该字符放入字符串中。

如果该字符对应的数组位置是1,就不再放入该位置中。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNextLine()){
            String str=scanner.nextLine();
            StringBuffer sb=new StringBuffer();
 			//开辟一个数组
            int[] arr=new int[58];
            for(int i=0;i<str.length();i++){
                char ch=str.charAt(i);
                //如果那个字母是第一次出现的话,就降入到sb中
                if(arr[ch-65]==0){
                    arr[ch-65]=1;
                    sb.append(ch);
                }
            }
            System.out.println(sb);
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的字符串是不可变的,即每当对字符串进行更改时,都会创建一个新的实例。为了处理可变字符串,Java提供了StringBuffer和StringBuilder类。StringBuffer是线程安全的,适用于多线程环境下的字符串操作,而StringBuilder则是非线程安全的,适用于单线程环境下的字符串操作。这两个类提供了一系列的方法来对字符串进行连接、比较、截取、查找和替换等操作。\[1\]\[2\]在Java中,字符串可以通过使用+运算符或者调用String类的concat()方法来进行连接。此外,还可以使用String类的substring()方法来截取字符串的一部分,使用indexOf()方法来查找指定字符或子字符串的位置,使用replace()方法来替换字符串中的字符或子字符串。以上是Java字符串的一些基本操作,还有更多的方法可以根据具体需求进行使用。 #### 引用[.reference_title] - *1* [【Java】常用数据结构字符串](https://blog.csdn.net/weixin_40109345/article/details/121048060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Java-数据结构-字符串专题一>](https://blog.csdn.net/weixin_45532984/article/details/125984603)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值