萌新JAVA问题求解答

通过键盘输入一段字符串str,并以¢$¢字符结束。编写一个程序,查找特定单词(如is)在字符串中出现的次数,然后分别统计数字字符、字母字符和其他字符的... 通过键盘输入一段字符串str,并以¢$¢字符结束。编写一个程序,查找特定单词(如is)在字符串中出现的次数,然后分别统计数字字符、字母字符和其他字符的个数,并以“***出现次数为:***”分别输出次数。要求:1.设计主类test,包括主方法main和统计方法count;2.main方法完成字符串的输入和待查找单词的输入,然后调用count方法进行统计并分别输出结果;3.统计方法count,能够对字符串中的字母字符、数字字符和某个单词等进行统计并输出统计结果,count方法可以重载。 展开
 我来答
风承随心
2020-05-03 · TA获得超过1286个赞
知道小有建树答主
回答量:1607
采纳率:87%
帮助的人:347万
展开全部
在修修改改就差不多了,大概基本都写完了

package base.io;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
* @author wenxy
* @create 2020-05-03
*/
public class JavaString {

static final String END_FLAG = "¢$¢";

public void count(String s, String p) {
int nCount = 0;
int lCount = 0;

List<Integer> indexs = new ArrayList<>(s.length());

char[] chars = s.toCharArray();
for (char c : chars) {
// System.out.println(c);
if (isNum(c)) {
nCount++;
} else if (isletter(c)) {
lCount++;
}
for (int i = 0; i < indexs.size(); i++) {
if (indexs.get(i) < p.length() && c == p.charAt(indexs.get(i))) {
indexs.set(i, indexs.get(i) + 1);
}
}

if (c == p.charAt(0)) {
indexs.add(Integer.valueOf(1));
}
}
System.out.println("数字个数:" + nCount);
System.out.println("字母个数:" + lCount);
System.out.println("其他字符:" + (s.length() - nCount - lCount));
System.out.println("匹配" + p + "次数:" +
(indexs.stream().filter(integer -> integer.equals(p.length()))).count());
// System.out.println(indexs);
}

private boolean isNum(char c) {
return c <= '9' && c >= '0';
}

private boolean isletter(char c) {
return c <= 'z' && c >= 'A';
}

private boolean isMatchP(char c, char p) {
return c == p;
}

public static void main(String[] args) {
JavaString js = new JavaString();
Scanner sc = new Scanner(System.in);

StringBuilder stringBuilder = new StringBuilder();
String line;
while (null != (line = sc.nextLine())) {
if (line.contains(END_FLAG)) {
stringBuilder.append(line.substring(0, line.indexOf(END_FLAG)));
break;
} else {
stringBuilder.append(line);
}
}

System.out.println(stringBuilder);
js.count(stringBuilder.toString(), "fs");
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式