62,620
社区成员
发帖
与我相关
我的任务
分享import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class StringSort {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
int subLength = 0;
StringBuilder sb = new StringBuilder();
Set<MyString> strs = new TreeSet<MyString>();
for(int i=0;i<s.length();i++){
char c = s.charAt(i);
if((c<='z'&&c>='a')||(c<='Z'&&c>='A')){
subLength++;
sb.append(c);
}
else
{
if(subLength!=0){
System.out.println(sb.toString()+" "+subLength);
strs.add(new MyString(sb.toString(), subLength));
sb.delete(0,sb.capacity());
subLength = 0;
}
}
}
if(subLength!=0){
System.out.println(sb.toString()+" "+subLength);
strs.add(new MyString(sb.toString(), subLength));
}
java.util.Iterator<MyString> it = strs.iterator();
while(it.hasNext()){
MyString myString = it.next();
System.out.println(myString.subStr);
}
}
}
class MyString implements Comparable<MyString>{
String subStr;
int subLength;
public MyString(String subStr, int subLength) {
this.subStr = subStr;
this.subLength = subLength;
}
@Override
public int compareTo(MyString o) {
if(this.subLength>o.subLength)
return -1;
else if(this.subLength>o.subLength)
return 1;
else
return 0;
}
@Override
public boolean equals(Object obj) {
return this.subStr.equals(((MyString)obj).subStr);
}
}
static class MyString implements Comparable<MyString>{
String str;
public MyString(String str){
this.str = str;
}
@Override
public int compareTo(MyString obj) {
if(equals(obj)){
return 0;
}
if(str.length() > obj.str.length()){
return -1;
}
else{
return 1;
}
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof MyString)){
return false;
}
MyString temp = (MyString)obj;
if(!str.equals(temp.str)){
return false;
}
return true;
}
}
package huawei.exam;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringSort {
private List<String> words = new ArrayList<String>();
public void getWords(String test_str) {
Pattern p = Pattern.compile("[a-zA-Z]{2,}+");
Matcher m = p.matcher(test_str);
while (m.find()) {
String tmp_str = m.group();
if (check(tmp_str))
words.add(getindex(tmp_str),tmp_str);
}
}
private boolean check(String tmp_str) {
if (words.contains(tmp_str)) {
return false;
} else {
return true;
}
}
private int getindex(String tmp_str){
int tmp_length = tmp_str.length();
int words_length = words.size();
if(words_length==0){
return 0;
}
else{
for(int i =0;i<words_length;i++){
if(tmp_length >= words.get(i).length()){
continue;
}else{
return i;
}
}
return words_length;
}
}
private String newString() {
String newString = "";
for(int i =0;i<words.size();i++){
if(i!= words.size()-1)
newString += words.get(i)+" ";
else
newString += words.get(i);
}
return newString;
}
public static void main(String[] args) {
StringSort ss = new StringSort();
ss.getWords("hello12dd21 we / ;dw");
System.out.println(ss.newString());
}
}
public int compareTo(MyString o) {
if(this.subLength>o.subLength)
return -1;
else if(this.subLength>o.subLength) // 这里跟上个if条件一样
return 1;
else
return 0;
}
public int compareTo(MyString o) {
if(this.subLength>o.subLength)
return -1;
else if(this.subLength<o.subLength)
return 1;
else
return 0;
}