天天看點

按要求操作,按順序從一字元串中輸出3個字元

package cn.itcast.sort;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.HashSet;

import java.util.List;

import java.util.Scanner;

import java.util.Set;

import java.util.Vector;

public class CharSort {

static List list = null;

public static void sortDemo(String str) {

// 重複元素不顯示,這裡用set集合存儲

Set set = new HashSet();

// 将字元串轉換成數組

char[] arr = str.toCharArray();

Arrays.sort(arr);

//實作字元順序存入

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

for (int j = i + 1; j < str.length(); j++) {

for (int k = j + 1; k < str.length(); k++) {

if (arr[i] == arr[j] || arr[j] == arr[k]

|| arr[k] == arr[i])

continue;

//這裡就必須要加上一個空字元,因為存儲

set.add("" + arr[i] + arr[j] + arr[k]);

}

}

}

//Vector 類實作了可動态擴充的對象數組。類似數組,它包含的元素可通過數組下标來通路。

//在 Vector 建立之後。Vector 可根據增加和删除元素的需要來擴大或縮小。

list = new Vector();

list.addAll(set);

//這裡是對配置設定好的字元再次排序,如:123,234;Colletions類主要實作清單List的排序功能

Collections.sort(list);

}

public static void show() {

for (Object s : list) {

System.out.print(s + "  ");

}

System.out.println();

System.out.println("-----------------------");

}

public static void main(String[] args) throws Exception {

String s = null;

while(true){

System.out.println("請輸入一串帶有一定比較意義的字元串/退出輸入”0000“:");

Scanner scan = new Scanner(System.in);

s = scan.next();

if(s.equals("0000")){

System.out.println("---------謝謝---------");

break;

}

sortDemo(s);

show();

}

}

}

按要求操作,按順序從一字元串中輸出3個字元

繼續閱讀