java大神
求救java大神
代码如下:
import java.util.*;
//需求:打印一个字符串,输出每个字母及其所出现的次数。
class MapTest
{
public static void main(String[] args)
{
WordNum wn = new WordNum("wejqjfdsanfvnvjdashgf");
TreeMap<Character,Integer> ts = wn.compute();
Set<Character> s = ts.keySet();
Iterator<Character> it = s.itrator();
while(it.hasNext())
{
char c = it.next();
System.out.println(c + "(" + ts.get(c) + ")");
}
}
}
class WordNum
{
private String word;
WordNum(String word)
{
this.word = word;
}
public <Character,Integer>TreeMap compute()
{
TreeMap<Character,Integer> ts = new TreeMap<Character,Integer>();
for(int i = 0;i < word.lenth();i++)
{
Character c = word.charAt(i);
Integer number = 0;
for(int j = 0;j < word.lenth();j++)
{
if(c.compareTo(word.charAt(j)) == 0)
number++;
}
ts.put(c,number);
}
return ts;
}
}
总会出现下面的错误
E:\ajava>javac MapTest.java
MapTest.java:8: 错误: 不兼容的类型; 不存在类型变量Character,Integer的实例, 以使T
reeMap与TreeMap<java.lang.Character,java.lang.Integer>一致
TreeMap<Character,Integer> ts = wn.compute();
^
需要: TreeMap<java.lang.Character,java.lang.Integer>
找到: <Character,Integer>TreeMap
其中, Character,Integer是类型变量:
Character扩展已在方法 <Character,Integer>compute()中声明的Object
Integer扩展已在方法 <Character,Integer>compute()中声明的Object
MapTest.java:10: 错误: 找不到符号
Iterator<Character> it = s.itrator();
^
符号: 方法 itrator()
求救到底如何修改
------解决思路----------------------
我也是菜鸟,看见的代码的缩进被吓退了。。我上传一个我写的吧,看了你的代码后写的,想法是一样的
-----------------------------------------------------------------------------------------------------------------------------
CharacterCounts类
-----------------------------------------------------------------------------------------------------------------------------
public class CharacterCounts {
private String Word;
private HashMap<Character,Integer> Result;
public CharacterCounts(String Word)
{
this.Word=Word;
Result=new HashMap<Character,Integer>();
}
public void compute()
{
for(int i=0;i<Word.length();i++)
{
Character c=Word.charAt(i);
Set<Character> set=Result.keySet();
if(set.contains(c))
continue;
int number=0;
for(int j=i;j<Word.length();j++)
{
if(Word.charAt(j)==c)
{
number++;
}
}
Result.put(c, number);
}
}
public HashMap<Character,Integer> getResult()
{
return Result;
}
}
-----------------------------------------------------------------------------------------------------------------------------
测试类
-----------------------------------------------------------------------------------------------------------------------------
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
CharacterCounts cc=new CharacterCounts("abdsafgasfasdfasdaa");
cc.compute();
HashMap<Character,Integer> result=cc.getResult();
Set set=result.keySet();
Iterator<Character> it=set.iterator();
while(it.hasNext())
{
Character c=it.next();
System.out.println(c+" : "+result.get(c));
}
}
}
------解决思路----------------------
那不是全名,那是基本类型的包装类,具体什么叫包装类,你可以百度一下。
基本类型因为不是对象,就没有方法,所以就会出现很多问题,比如Integer.parseInt() 这个方法
------解决思路----------------------
自己网上找一个遍历map的直接替换那一句就可以了
代码如下:
import java.util.*;
//需求:打印一个字符串,输出每个字母及其所出现的次数。
class MapTest
{
public static void main(String[] args)
{
WordNum wn = new WordNum("wejqjfdsanfvnvjdashgf");
TreeMap<Character,Integer> ts = wn.compute();
Set<Character> s = ts.keySet();
Iterator<Character> it = s.itrator();
while(it.hasNext())
{
char c = it.next();
System.out.println(c + "(" + ts.get(c) + ")");
}
}
}
class WordNum
{
private String word;
WordNum(String word)
{
this.word = word;
}
public <Character,Integer>TreeMap compute()
{
TreeMap<Character,Integer> ts = new TreeMap<Character,Integer>();
for(int i = 0;i < word.lenth();i++)
{
Character c = word.charAt(i);
Integer number = 0;
for(int j = 0;j < word.lenth();j++)
{
if(c.compareTo(word.charAt(j)) == 0)
number++;
}
ts.put(c,number);
}
return ts;
}
}
总会出现下面的错误
E:\ajava>javac MapTest.java
MapTest.java:8: 错误: 不兼容的类型; 不存在类型变量Character,Integer的实例, 以使T
reeMap与TreeMap<java.lang.Character,java.lang.Integer>一致
TreeMap<Character,Integer> ts = wn.compute();
^
需要: TreeMap<java.lang.Character,java.lang.Integer>
找到: <Character,Integer>TreeMap
其中, Character,Integer是类型变量:
Character扩展已在方法 <Character,Integer>compute()中声明的Object
Integer扩展已在方法 <Character,Integer>compute()中声明的Object
MapTest.java:10: 错误: 找不到符号
Iterator<Character> it = s.itrator();
^
符号: 方法 itrator()
求救到底如何修改
------解决思路----------------------
我也是菜鸟,看见的代码的缩进被吓退了。。我上传一个我写的吧,看了你的代码后写的,想法是一样的
-----------------------------------------------------------------------------------------------------------------------------
CharacterCounts类
-----------------------------------------------------------------------------------------------------------------------------
public class CharacterCounts {
private String Word;
private HashMap<Character,Integer> Result;
public CharacterCounts(String Word)
{
this.Word=Word;
Result=new HashMap<Character,Integer>();
}
public void compute()
{
for(int i=0;i<Word.length();i++)
{
Character c=Word.charAt(i);
Set<Character> set=Result.keySet();
if(set.contains(c))
continue;
int number=0;
for(int j=i;j<Word.length();j++)
{
if(Word.charAt(j)==c)
{
number++;
}
}
Result.put(c, number);
}
}
public HashMap<Character,Integer> getResult()
{
return Result;
}
}
-----------------------------------------------------------------------------------------------------------------------------
测试类
-----------------------------------------------------------------------------------------------------------------------------
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
CharacterCounts cc=new CharacterCounts("abdsafgasfasdfasdaa");
cc.compute();
HashMap<Character,Integer> result=cc.getResult();
Set set=result.keySet();
Iterator<Character> it=set.iterator();
while(it.hasNext())
{
Character c=it.next();
System.out.println(c+" : "+result.get(c));
}
}
}
------解决思路----------------------
那不是全名,那是基本类型的包装类,具体什么叫包装类,你可以百度一下。
基本类型因为不是对象,就没有方法,所以就会出现很多问题,比如Integer.parseInt() 这个方法
------解决思路----------------------
除了遍历map是java8,其他的都是7支持的,运行结果
d---1
e---3
H---2
i---3
j---2
k---2
l---2
o---1
我---2
r---1
u---1
w---2
z---1
/**
* Created by puruidong on 2015/4/26.
*/
public class TestDemo {
public static void main(String[] args) {
showCm("我HieHie我dlkjwoiuzlkjwer");
}
private static void showCm(String str){
char [] as = str.toCharArray();
Set <Character> sert = new HashSet<>();
Map<Character,Integer> maps = new HashMap<Character,Integer>();
for(char ap:as){
maps.put(ap,sert.add(ap)?1:maps.get(ap)+1);
}
/*maps.forEach((x,y)-> {
System.out.println(x+"---"+y);*/
});
}
}
自己网上找一个遍历map的直接替换那一句就可以了