Java 计算样本数据中的破折号
我正在执行一项任务,在该任务中,我被告知检查样本数据中的“-”,当在数据中发现a-,并且散列中有相邻的破折号时,这只计算1次出现,例如,在该样本数据中,答案为4 我开始创建一个二维数组来填充它,然后我要检查数组中的破折号,但我有点困惑,我将如何进行实际计数,任何帮助都将不胜感激 这是我到目前为止所拥有的Java 计算样本数据中的破折号,java,multidimensional-array,java.util.scanner,Java,Multidimensional Array,Java.util.scanner,我正在执行一项任务,在该任务中,我被告知检查样本数据中的“-”,当在数据中发现a-,并且散列中有相邻的破折号时,这只计算1次出现,例如,在该样本数据中,答案为4 我开始创建一个二维数组来填充它,然后我要检查数组中的破折号,但我有点困惑,我将如何进行实际计数,任何帮助都将不胜感激 这是我到目前为止所拥有的 Scanner input = new Scanner(System.in); int a = input.nextInt(); //no. of rows
Scanner input = new Scanner(System.in);
int a = input.nextInt(); //no. of rows
int b = input.nextInt(); //no. of columns
String arr[][] = new String[a][b]; //array of strings of 10 x 20
for(int i = 0; i<a; i++){
for(int j = 0; j<b; j++){
arr[i][j] = input.next();
}
}
//for test purposes
for(String[] s : arr){
for(String e : s){
System.out.print(e);
}
}
使用正则表达式的最简单方法。将每行视为字符串、修剪字符串,然后只允许字符串中的20个字符(基于列计数)。 其他方法可以是使用DSL算法
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String... args) throws Exception {
Scanner input = new Scanner(System.in);
int a = input.nextInt(); // no. of rows
int b = input.nextInt(); // no. of columns
Pattern pattern = Pattern.compile("#(--+)#");
int count = 0;
for (int i = 0; i < a; i++) {
String temp = input.next().trim();
if (temp.length() > b) {
temp.substring(0, b);
}
Matcher matcher = pattern.matcher(temp);
if (matcher.find()) {
count++;
}
}
System.out.println(count);
}
}
import java.util.Scanner;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公开课考试{
公共静态void main(字符串…参数)引发异常{
扫描仪输入=新扫描仪(System.in);
int a=input.nextInt();//行数
int b=input.nextInt();//列数
Pattern=Pattern.compile(“#”(-+)#”);
整数计数=0;
for(int i=0;ib){
温度子串(0,b);
}
匹配器匹配器=模式匹配器(温度);
if(matcher.find()){
计数++;
}
}
系统输出打印项次(计数);
}
}
所以基本上你没有做任何工作,而是希望我们做你的家庭作业?听起来像。但这是一个有趣的谜;当然可以。创建一个occurrences
变量,并在每次找到破折号时将其递增1。目前还不清楚显示的数据的计数将如何为4。它是以成堆的方式计算破折号的数量,上下左右相邻。这很有意义,我曾考虑使用RegEx作为检查模式的一种方法,但我不确定如何实现它,但您已经以一种简单易懂的方式完成了。这解决了我的问题,谢谢。
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String... args) throws Exception {
Scanner input = new Scanner(System.in);
int a = input.nextInt(); // no. of rows
int b = input.nextInt(); // no. of columns
Pattern pattern = Pattern.compile("#(--+)#");
int count = 0;
for (int i = 0; i < a; i++) {
String temp = input.next().trim();
if (temp.length() > b) {
temp.substring(0, b);
}
Matcher matcher = pattern.matcher(temp);
if (matcher.find()) {
count++;
}
}
System.out.println(count);
}
}