import java.util.Scanner;public class Counter
{
public int counter(String inputs, String word)
{
int counter = 0;
int index = 0;
for (int i = 0; i < inputs.length() - 1; i++)
{
if (inputs.indexOf(word) == 0)
{
counter++;
index++;
}
}
return counter;
} public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Counter find = new Counter();
System.out.print("请输入一个字符串:");
String inputs = input.next();
System.out.print("请输入要查找的字符:");
String word = input.next();
int num = find.counter(inputs, word);
System.out.println(inputs + "中包含" + num + "个" + word);
}
}
我输出的结果是字符的下标,而不是次数,那位大神帮我修改一下~谢谢!
{
public int counter(String inputs, String word)
{
int counter = 0;
int index = 0;
for (int i = 0; i < inputs.length() - 1; i++)
{
if (inputs.indexOf(word) == 0)
{
counter++;
index++;
}
}
return counter;
} public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Counter find = new Counter();
System.out.print("请输入一个字符串:");
String inputs = input.next();
System.out.print("请输入要查找的字符:");
String word = input.next();
int num = find.counter(inputs, word);
System.out.println(inputs + "中包含" + num + "个" + word);
}
}
我输出的结果是字符的下标,而不是次数,那位大神帮我修改一下~谢谢!
解决方案 »
- netbeans代码提示Javadoc的问题
- JComboBox获得焦点后为啥无法用热键??
- 没分了,但只有二个问题。
- 能动态修改CLASSPATH吗?比如新加了一个jar文件,程序不用重启就能装入里面的类?
- 高分求java绘图程序源代码
- 通过ResultSetMetaData能获得主表字段是和次表中那个字段相关联吗?不能的话怎么办?
- 《精通EJB》(第二版)
- 请教JBuild的问题,?~~还有B/S or B/C!!~~
- 服务器端用Java调用一个ActiveX Dll组件,能行吗?办法呢?
- 为啥每种时区所示时间都一样
- 关于 java 的理解
- itext的一些问题(能不能给pdf插入一些无关紧要的信息)
假如
输入预定字符串:aabbccbbgggg
输入要查找字符:b
现在用String里面的replaceAll方法把预定字符串的b都换成这个""
之后在判断被替换后的字符串长度,和原来的长度差是多少相信你懂了其他方法
map集合
利用键值对计算
public int counter(String inputs, String word) {
int counter = 0;
int index =0;
for (int i = 0; i <= inputs.length() - 1; i++) {
if ( ( index = inputs.indexOf(word) ) !=-1 ) {
counter++;
inputs = inputs.substring(index+word.length());
}
}
return counter;
} public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Counter find = new Counter();
System.out.print("请输入一个字符串:");
String inputs = input.next();
System.out.print("请输入要查找的字符:");
String word = input.next();
int num = find.counter(inputs, word);
System.out.println(inputs + "中包含" + num + "个" + word);
}
}
public int counter(String inputs, String word) {
int counter = 0;
int index =0;
//
// for (int i = 0; i < inputs.length() - 1; i++) { //要用 <=
// if (inputs.indexOf(word) == 0) { //要换成!=-1 !=-1意为找到一次,让count++才有意义
// counter++;
// index++; //仔细看看你的index,哪都没用到,这是毛用...
// }
// }
// return counter;
for (int i = 0; i <= inputs.length() - 1; i++) {
if ( ( index = inputs.indexOf(word) ) !=-1 ) {
//上句代码意思为若inputs="abcdefgabckabcii"
// word="abc";
//则每找到一次abc就,让inputs=从c后的那个d开始形成的子串即为defgabckabcii;
//然后再循环往覆,直到结束.
//而上面的for(循环其实意思不大),最好直接用
// while(( index = inputs.indexOf(word) ) !=-1 ){
// counter++;
// inputs = inputs.substring(index+word.length());
// }
}
}
return counter;
} public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Counter find = new Counter();
System.out.print("请输入一个字符串:");
String inputs = input.next();
System.out.print("请输入要查找的字符:");
String word = input.next();
int num = find.counter(inputs, word);
System.out.println(inputs + "中包含" + num + "个" + word);
}
}
//e表示需要匹配的数据,使用Pattern建立匹配模式
Pattern p = Pattern.compile("as");
//使用Matcher进行各种查找替换操作
Matcher m = p.matcher(str);
int i = 0;
while(m.find()){
i++;
}
System.out.println(i); 正则表达式
{
counter++;
index++;
}
修改成
int index = 0;
int counter = 0;
String word="as";
for(int j=0;j<str.length();j++){
index=str.indexOf(word);
if (index != -1) {
counter++;
if(!"".equals(str)){
str=str.substring(index+word.length());
}
}else{
break;
}
}
System.out.println(counter);
int counter = 0;
int index = 0;
while ((index = inputs.indexOf(word, index)) != -1) {
counter++;
index++;
}
return counter;
}
应该用charAt。示例:
char array_char[];
public int counter(String inputs, String word)
{
int total=0;
array_char=inputs.toCharArray();
for(int i=0;i<array_char.length;i++){
if (array_char[i]==(word.charAt(0))){
total++;
}
}
return total;
}
要查找的是: word可以:
String tmp = str.replaceAll("\\Q" + word + "\\E", ""); // 将匹配的字符串全部干掉
int num = (str.length() - tmp.length()) / word.length(); // 这就是统计出的字符串出现次数了。局限性:
如果word里面有一些特殊转义组合的话,就会失效。