📄 cmn.java
字号:
import java.util.ArrayList;
/**
* <p>
* ���ַ���ȡ��ָ������������ַ�
* <p>
*
*
* @author yjfeng
*/
public class Cmn {
private String mString;
private int n;
public Cmn(String mString,int n){
this.mString = mString;
this.n = n;
}
private int getTheMax(){
int lenth = mString.length();
double maxvalue = 0;
for(int i = 0;i < lenth; i ++ ){
maxvalue = maxvalue + Math.pow(2, i);
}
return (int)maxvalue;
}
private int count1(String binaryStr){
int count = 0;
for(int i = 0;i < binaryStr.length();i ++){
if(binaryStr.charAt(i) == '1'){
count ++;
}
}
return count;
}
private String[] getCmnIndexStr(){
int maxvalue = getTheMax();
ArrayList list = new ArrayList();
for(int j = 1;j <= maxvalue;j ++){
String binaryStr = Integer.toBinaryString(j);
if(count1(binaryStr) == n){
list.add(appendZero(binaryStr));
}
}
return (String[])list.toArray(new String[0]);
}
private String appendZero(String str){
int len = mString.length();
if(str.length() < len){
int sublen = len - str.length();
String appendStr = "";
for(int i = 0;i < sublen;i ++){
appendStr = appendStr + "0";
}
str = appendStr + str;
}
return str;
}
private String getStrByIndexStr(String indexStr,String mstr){
String result = "";
for(int i = 0;i < indexStr.length();i ++){
if(indexStr.charAt(i) == '1'){
result = result + mstr.charAt(i);
}
}
return result;
}
public String[] getCmnString(){
if(n == 0){
return new String[0];
}else if(n == mString.length()){
return new String[]{mString};
}
String[] indexStr = getCmnIndexStr();
String[] cmnStr = new String[indexStr.length];
for(int i = 0;i < indexStr.length;i ++){
cmnStr[i] = getStrByIndexStr(indexStr[i],mString);
}
return cmnStr;
}
public static void main(String[] a){
Cmn cmn = new Cmn("123456",3);
String[] str = cmn.getCmnString();
for(int i = 0;i < str.length;i ++){
System.out.println(str[i]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -