字符串内排序java_Java 对字符串内的字符进行排序

public class Anagram {

/**来自

n o w j a v a . c o m**/

/**

* Tests whether the passed-in strings are anagrams --

* containing the exact same number of each letter.

* Punctuation, case, and order don't matter.

*

* @return true if the strings are anagrams; otherwise, false

*/

public static boolean areAnagrams(String string1, String string2) {

String workingCopy1 = removeJunk(string1);

String workingCopy2 = removeJunk(string2);

workingCopy1 = workingCopy1.toLowerCase();

workingCopy2 = workingCopy2.toLowerCase();

workingCopy1 = sort(workingCopy1);

workingCopy2 = sort(workingCopy2);

return workingCopy1.equals(workingCopy2);

}/*来自 时 代 Java - nowjava.com*/

/**

* Removes punctuation & spaces -- everything except

* letters from the passed-in string.

*

* @return a stripped copy of the passed-in string

*/

protected static String removeJunk(String string) {

int i, len = string.length();

StringBuilder dest = new StringBuilder(len);

char c;

for (i = (len - 1); i >= 0; i--) {

c = string.charAt(i);

if (Character.isLetter(c)) {

dest.append(c);

}

}

return dest.toString();

}

/**

* Sorts the passed-in string.

*

* @return a sorted copy of the passed-in string

*/

protected static String sort(String string) {

char[] charArray = string.toCharArray();

java.util.Arrays.sort(charArray);

return new String(charArray);

}

public static void main(String[] args) {

String string1 = "Cosmo and Laine:";

String string2 = "Maid, clean soon!";

System.out.println();

System.out.println("Testing whether the following "

+ "strings are anagrams:");

System.out.println(" String 1: " + string1);

System.out.println(" String 2: " + string2);

System.out.println();

if (areAnagrams(string1, string2)) {

System.out.println("They ARE anagrams!");

} else {

System.out.println("They are NOT anagrams!");

}

System.out.println();

}

}

/*

* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.

*

* Redistribution and use in source and binary forms, with or without

* modification, are permitted provided that the following conditions

* are met:

*

* - Redistributions of source code must retain the above copyright

* notice, this list of conditions and the following disclaimer.

*

* - Redistributions in binary form must reproduce the above copyright

* notice, this list of conditions and the following disclaimer in the

* documentation and/or other materials provided with the distribution.

*

* - Neither the name of Oracle or the names of its

* contributors may be used to endorse or promote products derived

* from this software without specific prior written permission.

*

* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS

* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,

/**代码未完, 请加载全部代码(NowJava.com).**/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值