A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冬冬宋 中级黑马   /  2016-8-17 22:34  /  719 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[AppleScript] 纯文本查看 复制代码
package test;

import java.util.LinkedHashSet;
import java.util.Scanner;

public class Demo2 {

	/**
	 * @param args
	 * 使用Scanner从键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符
	 * aaaabbbcccddd
	 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);//创建键盘录入对象
		System.out.println("请输入一段字符串");
		String s = sc.nextLine();
		char [] arr = s.toCharArray();//将录入的字符穿转换为字符数组
		LinkedHashSet<Character> li = new LinkedHashSet<>();//创建linkdehashset集合
		//第一使用普通for进行遍历
		for (int i = 0; i < arr.length; i++) {//遍历字符数组
			li.add(arr[i]);//每遍历出一个字符,就调用linkedsethash的add方法,这样当不重复的时候,就往li集合里面添加,重复的时候,就不添加
		}
		System.out.println(li);//最后打印集合中的元素
		
		//第二种使用character作为数据类型的增强for显得代码更加清晰一点,节省代码量
		for (Character character : li) {
			System.out.print(character);
		}
		System.out.println();//换行作用
		//第三种使用char作为数据类型的增强for遍历
		for (char character : li) {	//这里写成char也是可以的,因为在他会自动装箱变成character
			System.out.print(character);
		}
	}

}

2 个回复

倒序浏览
[Java] 纯文本查看 复制代码
public class Demo3 {

	/**
	 *使用Scanner从键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符
	 *创建Scanner 对象;
	 *提示输入一行
	 *将输入的字符串转换成数组,
	 *
	 */
	public static void main(String[] args) {
		HashSet<Character> hs = new HashSet<>();	//创建HashSet集合
		Scanner sc = new Scanner(System.in);		//创建Scanner对象
		System.out.println("请输入一个字符串:");			//输入提示
		String s = sc.nextLine();					//输入一行
		char[] ch = s.toCharArray();				//将字符串转换成字符数组
		for (int i = 0; i < ch.length; i++) {		//遍历数组
			hs.add(ch[i]);							//向集合中添加字符数组中的元素
		}
		for (char c : hs) {							//遍历集合
			System.out.print(c);					//打印输出
		}
	}

}
回复 使用道具 举报
请问 这个需求用set 可以去掉重复的数据。这是战士算法?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马