java中怎样实现字符串某个字符java字符串出现的次数数

本帖子已过去太久远了,不再提供回复功能。Java通过键盘输入一个字符串,判断字符串中出现最多的字符并输出该字符和输出出现次数 -
- ITeye技术网站
博客分类:
package com.string.
import java.util.A
import java.util.S
public class JudeCount {
public static void main(String[] args) {
System.out.println("请输入你要判断的字符串:");
Scanner s = new Scanner(System.in);
String str = s.nextLine();
char[] ch = str.toCharArray();
Arrays.sort(ch); // 对数组排序
char max = 'a'; // 记录出现次数最多元素
int maxcount = 0; // 记录最大出现次数
int count = 1; // 中间传值参数 判断当前元素出现次数
for (int i = 0; i & ch.length - 1; i++) { // 进行判断
if (ch[i] == ch[i + 1]) {
if (ch[i] != ch[i + 1]) {
if (count & maxcount) {
maxcount =
max = ch[i];
count = 1;
System.out.println("出现最多的元素是:" + max + " 次数为:" + maxcount);
/blog/326625
stevenjohn
浏览: 825556 次
来自: 深圳
FileInputStream不要关闭啊?
在试用联通的wo邮箱的时候,uid是null的。目前其他邮箱正 ...
理解很有深度,赞一个!
楼主,能解释下 rest 和 http 请求有什么区别吗您现在的位置:&&>>&&>>&&>>&&>>&正文
Java利用正则表达式统计某个字符串出现的次数
  //统计某个字符出现的次数
  private void countSubString(){
  String string1="香蕉、玉米、面粉";
  String string2="香蕉、玉米、面粉";
  String string3="牛奶、鸡蛋";
  StringBuffer stringBuffer=new StringBuffer();
  stringBuffer.append(string1)。append("、")。append(string2)。append("、")。append(string3)。append("、");
  String totalString=stringBuffer.toString();
  System.out.println("组拼后的字符串为:"+totalString);
  while (totalString.length()&0) {
  //得到第一个字符串比如"香蕉、"
  int index=totalString.indexOf("、");
  String foodName=totalString.substring(0,index+1);
  Pattern pattern = pile(foodName);
  Matcher matcher = pattern.matcher(totalString);
  int count=0;
  while(matcher.find()){
  count++;
  totalString= totalString.replaceAll(foodName, "");
  System.out.println("食品名字为:"+foodName+",出现次数为:"+count);
  System.out.println("统计删除后字符串为:totalString="+totalString);
  System.out.println("===============================");
【责编:ivy】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 认证培训
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 社区讨论
 博客论点
 频道精选
 Java 频道导航「译」在java中,字符串的加法是如何实现的? - web网站建设 - ITeye技术网站
博客分类:
当我查看String类的concat函数的源码时,发现字符串连接是这么实现的:
public String concat(String str) {
int otherLen = str.length();
if (otherLen == 0) {
int len = value.
char buf[] = Arrays.copyOf(value, len + otherLen);
str.getChars(buf, len);
return new String(buf, true);
那么,字符串的连接符(+)的实现和这个有什么区别呢?如果有区别的话,那它是如何实现的呢?
此外,这两者分别在什么场合使用,有没有性能上的差异。
为了回答这个问题,我们可以做一个测试。
首先,我们连接两个字符串
String s1 = "foo";
String s2 = "bar";
String s3 = s1 + s2;
下面我们将这个代码编译成class文件,然后再反编译(可以用JAD),我们得到反编译后的代码是:
String s = "foo";
String s1 = "bar";
String s2 = (new StringBuilder()).append(s).append(s1).toString();
所以,+ 和 concat 肯定是有区别的。
在性能上,从 concat() 源码可以看出,StringBuilder创建了更多的对象,而concat却没有,它使用的String类的内部实现。
综上,当我们需要连接两个字符串的时候,我们应当优先考虑使用 concat() 函数,当我们需要连接字符串和其它类型的变量时,再考虑使用+运算符。
译者注:用 javap -c 查看java生成的字节码:
java.lang.String cat(java.lang.String, java.lang.String);
#2; //class java/lang/StringBuilder
invokespecial
#3; //Method java/lang/StringBuilder."&init&":()V
invokevirtual
#4; //Method java/lang/StringBuilder.append:(Ljava/lang/S)Ljava/lang/StringB
invokevirtual
#4; //Method java/lang/StringBuilder.append:(Ljava/lang/S)Ljava/lang/StringB
invokevirtual
#5; //Method java/lang/StringBuilder.toString:()Ljava/lang/
可以看出 a += b 其实等价于
a = new StringBuilder()
.append(a)
.append(b)
.toString();
runfriends 写道楼主你用的是谁家的编译器啊?我用jdk6、jdk7、eclipse jdt的编译器编译后再反编译回来的都还是+。不排除这是你用的反编译器干的。这种事情还是直接看bytecode靠谱。确实是我的反编译器的问题runfriends 写道在用+连接字符串时,每遇到一个+都会创建一个StringBuilder对象,调用两次append和一次toString()很久很久以前做过测试,每个字符串连加的表达式只会创建一个StringBuilder。所以只有当字符串连接被分散在不同的表达式里,或者表达式在循环或者递归里,StringBuilder和加号连接才会有显著差异。我又测试了一下,你是对的,我错了。之前是我测试不严格。之前我测试的时候是在循环里面连接字符串。runfriends 写道在这个过程中如果调用n次append,最少创建一个append,最多创建n+1次啥叫“创建一个append”呀?我按错了键,应该是最少创建一个char[],最多创建n+1个
楼主你用的是谁家的编译器啊?我用jdk6、jdk7、eclipse jdt的编译器编译后再反编译回来的都还是+。不排除这是你用的反编译器干的。这种事情还是直接看bytecode靠谱。runfriends 写道在用+连接字符串时,每遇到一个+都会创建一个StringBuilder对象,调用两次append和一次toString()很久很久以前做过测试,每个字符串连加的表达式只会创建一个StringBuilder。所以只有当字符串连接被分散在不同的表达式里,或者表达式在循环或者递归里,StringBuilder和加号连接才会有显著差异。runfriends 写道在这个过程中如果调用n次append,最少创建一个append,最多创建n+1次啥叫“创建一个append”呀?
浏览: 54808 次
来自: 天津
kidneyball 写道runfriends 写道楼主你用的 ...
runfriends 写道楼主你用的是谁家的编译器啊?我用jd ...
so the original article is inco ...
所以前面我说的那一些对jdk7也适用
楼主你用的是谁家的编译器啊?我用jdk6、jdk7、eclip ...

我要回帖

更多关于 java字符串出现次数 的文章

 

随机推荐