アルゴリズム - デジタル出力が3回表示されます
例えば、整数の文字列を入力してください:「1,2,2,2,3,4,4,4,6は、」すべての整数を選択し、新しい文字列出力を形成するために3回登場。
例:
入力: "1,2,2,2,3,4,4,4,6"
出力: "24"
import java.util.HashMap;
import java.util.Map;
public class GetThree
{
public int[] transfer(String list){
String[] a = list.split(",");
int size = a.length;
int[] result = new int[size];
for(int i = 0; i < a.length; i++){
result[i] = Integer.parseInt( a[i] );
}
return result;
}
public String getResult(String orign){
Map<Integer,Integer> map = new HashMap<Integer, Integer>();
int[] orignList = transfer(orign);
for(int i=0; i<orignList.length; i++){
boolean containsKey = map.containsKey(orignList[i]);
if(containsKey){
int value = map.get(orignList[i]) + 1;
map.put(orignList[i], value);
}
else{
map.put(orignList[i], 1);
}
}
String result = "";
for(Integer key : map.keySet()){
if(map.get(key) == 3){
result += String.valueOf(key);
}
}
return result;
}
}
注意事項
1.文字列と様々なフォーマット間の変換:
- 転送文字列の他のタイプ:
String s = String.valueOf( value); // 其中 value 为任意一种数字类型。
- 文字列の転送他のタイプ:
String s = "169";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
2. JAVA分割使用:
EG
String[] splitAddress=address.split(",");
System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]+splitAddress[3]);
セパレータとして使用した場合、以下のように、それは、書かなければなりません「」String.split("\\.")
、だから、適切に分離するように、使用することはできませんString.split(".")
、
と、そのため『|』と『*』、エスケープ文字である、「追加する必要があります「」 \」ではなく、コンマ。
基本的な使い方3. JAVAマップ:
マップキーは、任意のタイプにすることができます。
参照ボーエン1
参照ボーエン2は、
地図マップ内のcontainsKey()メソッドにキー必要が含ま決定し、
マップを分析する値のcontainsValueでマップを(使用する必要がある値を含む)の方法
基準ボーエン:地図の分析しますかどうかのキーを含むことのcontainsKey()メソッドをマッピングするために必要とされます
参考文献: