gpt4 book ai didi

java - 如何在Java中用户一次输入字符串中的模式并将其存储为二维字符数组

转载 作者:行者123 更新时间:2023-12-01 12:37:37 24 4
gpt4 key购买 nike

我遇到了一个特定的问题。任何帮助将非常感激。

假设我的行数=8,列数=5。我如何通过以下方式获取用户的输入。

Aacvg
Qwn&k
LOpyc
GYhcj
%&fgT
JUIOP
icgfd
Hu*hc

然后计算整个用户定义模式中“c”的数量,这将在此处给出输出=5。

我尝试将每一行输入为字符串,然后将其转换为二维字符数组,但它不起作用。另外如何将每行的字符数限制为列数(此处为 5)。

注意:- 输入将是一整行,然后是下一行作为一个整体......直到 row=8(对于本例)。

如果有人能告诉我一种方法,我将非常感激。(我什至考虑过数组数组。)

我编写了以下代码,但它不起作用,所以如果有人可以编写正确的方法来执行它。

Scanner sc = new Scanner (System.in);
for(int i=0;i<row;i++){
String str;
str = sc.nextLine();
for(int j=0;j<column;j++){
char[] charArray = str.toCharArray();
a[i][j]= charArray[j];
if(a[i][j]=='c'){
count= count+1;
}
}
}

最佳答案

我建议使用 String 类提供的函数,而不是摸索数组。

这是使用基于您的示例的代码实现此目的的一种可能方法。

    int row = 8;
int column = 5;
int count = 0;
char searchedCharacter = 'c';
int currentIndex;
boolean searching;

Scanner sc = new Scanner(System.in);
String str;

for (int i = 0; i < row; i++) {
str = sc.nextLine();
currentIndex = -1;
searching = true;

while (searching) {
// indexOf will return -1 if the character was not found in the String
currentIndex = str.indexOf(searchedCharacter, currentIndex + 1);

if (currentIndex > -1 && currentIndex < column) {
count++;
} else {
searching = false;
}
}
}

sc.close();

System.out.println(count);

这样您就不必处理Array,也不必处理字符的比较,因为您的String对象将完成大部分工作你。

它还会阻止您运行 IndexOutOfBoundsExceptions,这种情况在您的代码中很容易发生,因为您没有检查 charArray[j] 是否实际上是有效索引.

关于java - 如何在Java中用户一次输入字符串中的模式并将其存储为二维字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25445024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com