萌新JAVA问题求解答
通过键盘输入一段字符串str,并以¢$¢字符结束。编写一个程序,查找特定单词(如is)在字符串中出现的次数,然后分别统计数字字符、字母字符和其他字符的...
通过键盘输入一段字符串str,并以¢$¢字符结束。编写一个程序,查找特定单词(如is)在字符串中出现的次数,然后分别统计数字字符、字母字符和其他字符的个数,并以“***出现次数为:***”分别输出次数。要求:1.设计主类test,包括主方法main和统计方法count;2.main方法完成字符串的输入和待查找单词的输入,然后调用count方法进行统计并分别输出结果;3.统计方法count,能够对字符串中的字母字符、数字字符和某个单词等进行统计并输出统计结果,count方法可以重载。
展开
1个回答
展开全部
在修修改改就差不多了,大概基本都写完了
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");
}
}
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");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询