java计算字符串中字符出现的次数_java – 计算字符串中字符出现次数
参见英文答案 > Java compressing Strings 18个
我正在尝试编写一个Java程序,它接受一个字符串作为输入,并计算一个字符串中出现的字符数,然后打印一个新字符串,该字符串后跟no出现的字符.
例如.
输入字符串:
aaaabb
输出字符串:
a4b2
输入字符串:
aaaaabbbc
输出字符串:
a5b3c1
我发布了我的java代码.
它正在抛出StringOutOfBoundException
/*Write a routine that takes as input a string such as "aabbccdef" and o/p "a2b2c2def" or "a4bd2g4" for "aaaabddgggg".*/
import java.util.Scanner;
public class CountingOccurences {
public static void main(String[] args) {
Scanner inp= new Scanner(System.in);
String str;
char ch;
int count=0;
System.out.println("Enter the string:");
str=inp.nextLine();
while(str.length()>0)
{
ch=str.charAt(0);
int i=0;
while(str.charAt(i)==ch)
{
count =count+i;
i++;
}
str.substring(count);
System.out.println(ch);
System.out.println(count);
}
}
}
解决方法:
这就是问题:
while(str.charAt(i)==ch)
这将继续下去直到它结束…当我与字符串的长度相同时,它将要求超出字符串末尾的字符.你可能想要:
while (i < str.length() && str.charAt(i) == ch)
您还需要在较大循环的每次迭代开始时将计数设置为0 – 计数重置,毕竟 – 并更改
count = count + i;
要么:
count++;
…或摆脱伯爵或我.毕竟,他们总是会有相同的价值.就个人而言,我只使用一个变量,在循环中声明并初始化.事实上,这是一个通用的样式点 – 在需要时声明局部变量更为清晰,而不是在方法的顶部声明它们.
但是,那么你的程序将永远循环,因为这没有做任何有用的事情:
str.substring(count);
字符串在Java中是不可变的 – substring返回一个新字符串.我想你想要:
str = str.substring(count);
请注意,这仍然会为“aabbaa”输出“a2b2a2”.这样可以吗?
标签:string-parsing,java,string,exception
来源: https://codeday.me/bug/20191002/1843137.html
java计算字符串中字符出现的次数_java – 计算字符串中字符出现次数相关推荐
- java将从键盘输入的时间格式化_java 时间格式化中的模式字母
java日期格式化中的模式字母有特定的意义,由于没有注意,今天在做工程的时候导致出现了奇怪的日期: 错误写法如下: 然而得到了错误的结果: 正确写法如下: 这样就得到了正确的结果 mm指的是分钟,MM ...
- Java获取单词的首字母的方法_java – 从句子中的每个单词中提取第一个字母
我已经开发了一个语音到文本程序,用户可以说一个简短的句子,然后将其插入文本框. 如何提取每个单词的首字母然后将其插入文本字段? 例如,如果用户说:"Hello World".我想在 ...
- java中两任务并行运行_Java并行编程中的“可调用”与“可运行”任务
java中两任务并行运行 当我们用Java编写多线程应用程序时,我们倾向于使用" Runnable "接口来实现线程类. 您的类必须简单地实现此接口并覆盖run方法. 对于琐碎的用 ...
- java string出现次数_Java String方法获取字符出现次数及字符最大相同部分示例
本文实例讲述了Java String方法获取字符出现次数及字符最大相同部分.分享给大家供大家参考,具体如下: package demo; public class Test { public stat ...
- java获取页面点击次数_java计算鼠标点击次数的题,急求!
展开全部 我没有用到题目里给的计算时间差来计算,想不明白有啥用. 另外我就没布局了,随便做了个界面美化32313133353236313431303231363533e58685e5aeb931333 ...
- java语言使用的字符码集是_Java应用开发中的字符集与字符编码
事出有因 在向HttpURLConnection的输出流写入内容时,因没有设置charset,导致接收方对数据的验签不一致. URL url = newURL(requestUrl);//打开连接 H ...
- java中微秒时间相减_Java计算时间差(两个时间相减)
在Android开发或者Java学习中,经常要求两个时间差 比如说: 现在是 :2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 我现在要获得两个日期差,差的形式 ...
- java中斜杠的用法_java培训学习中反斜杠“\”的用法
java反斜杠\的用法比较怪异,分为两种场景: 1. 正则表达式 匹配点(.) 或 {.[.(.?.$.^ .+和 * 这些特殊符号要要前加双斜框,表示字符类的时候也是用双斜杠譬如(\\s[空白符], ...
- java将clob类型文件写到磁盘_Java对Oracle中Clob类型数据的读取和写入
Java对Oracle中Clob数据类型是不能够直接插入的,但是可以通过流的形式对clob类型数据写入或者读取,网上代码并不算特别多,讲的 Java对Oracle中Clob数据类型是不能够直接插入的, ...
最新文章
- 剑指offer:面试题18. 删除链表的节点
- 聊一聊转行推荐的问题
- ios开发 静音键设置_合肥包河区:连夜设置三道拦水坝只为按下中考“静音键”...
- mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- NEUACM 2015年一月月赛
- Linux acpi off学习的必要
- Remoting在FX2.0中的新特性 (2)
- 信息论实验一:信源熵的计算
- ActiveReport报表模板库新增21张报表模板,加入报表导出功能!
- 医疗物联网的定义的业务场景
- Spotfire 表达式中的属性
- serialVersionUID 问题处理
- mac打开chm格式文件
- SSM网上校园订餐系统-javaweb, mysql
- Selenium3自动化学习(三)
- 计算机架构总结笔记(1)
- TIMESAT 无格式文件迭代转tif
- 清亡之路(4):最受误解的东南互保
- 先别急着练速写,人物慢写才是第一步
热门文章
- Android之倍数提高工作效率的 Android Studio 奇技
- C++ 语法都不会怎么写代码? 03
- Python3 实现建造者模式
- 基于junit4的关于个人所得税计算的等价类与边界值_《边界值分析》-有这篇就够了...
- oracle中persons,oracle 简单备注
- matlab读取文件夹下所有文件的字符串,MATLAB读取文件夹下所有文件的文件名并读取数据...
- 自定义sql_一个简单易用的开源BI软件,专为SQL用户设计的开源库
- eltree ref什么时候有_Vue3响应式系统源码解析-Ref篇
- 现在的娃娃有多智能?
- 限时秒杀┃月销10000+件,风靡全国的steam科学实验套装