Java 填写空白-唯一字符串

Java 填写空白-唯一字符串,java,Java,我已经填完了大部分的空白;然而,我被困在这最后三个,我所尝试的一切都给了我错误 公共静态字符串唯一(字符串s){ _____=新HashMap(); for(char c:s.toCharArray()){ 整数计数=计数。获取(c); 如果(计数=null){ _____ } 计数。放置(c,计数+1); } 字符串结果=”; for(char c:s.toCharArray()){ 如果(如果){ 结果=结果+c; } } 返回结果; } 公共无效测试_Unique(){ 资产质量(“km”

我已经填完了大部分的空白;然而,我被困在这最后三个,我所尝试的一切都给了我错误

公共静态字符串唯一(字符串s){
_____=新HashMap();
for(char c:s.toCharArray()){
整数计数=计数。获取(c);
如果(计数=null){
_____
}
计数。放置(c,计数+1);
}
字符串结果=”;
for(char c:s.toCharArray()){
如果(如果){
结果=结果+c;
}
}
返回结果;
}
公共无效测试_Unique(){
资产质量(“km”,独特(“ffifkmi”);
资产质量(“es”,独特(“测试”);
assertEquals(“混淆”)、unique(“混淆”);
}
1)地图计数 2) 计数=0
3) counts.get(c)您需要了解算法是如何工作的

它迭代字符串中的字符,并统计其中每个字符的出现次数。要将计数与字符关联,您需要一个映射(1),这在示例中非常明显,因为它已经显示了其结构,因此实际上您只需要映射的一个变量。现在该如何命名这个变量?你有这段代码

counts.get(c);
这显示了如何从何处请求特定字符的计数?A

那么你有:

if  (count  ==  null)
如果查看该方法的规范,您将看到该调用何时返回
null

返回:

指定键映射到的值,如果此映射不包含该键的映射,则为null

当您第一次遇到在地图中还没有映射的特许时,就是这种情况。所以你需要在地图上记录这个角色的数量。下一段代码用witch value告诉您应该初始化它:

counts.put(c, count + 1);
计数首先递增,而不是放在地图上,因此要使第一次出现
1
,您需要使用
0
(2)初始化
count


然后开始再次迭代字符串的字符,以确定哪个是唯一的。这是什么意思?确切地说,
count
必须等于
1
(3)

unique
中,使用变量
counts
。在哪里可以定义它?一旦你解决了这个问题,看看会有什么回报。如果它返回
null
但我们希望将它返回的值增加1,那么需要做什么?最后,在什么条件下,将向结果字符串追加字符?把它插入最后一个间隙,你就完成了@彼得,这看起来很像家庭作业。你知道这不是一个应该为你解决家庭作业的网站吗?我不认为你的答案是正确的,但我确实认为彼得应该自己做家庭作业。为3)做了一个小修正。有些人需要一些帮助才能渡过难关:)