gpt4 book ai didi

java - 计算没有空格、逗号或句点的输入 - Java

转载 作者:行者123 更新时间:2023-12-04 07:55:35 25 4
gpt4 key购买 nike

输入是“听着,琼斯先生,冷静点。”


import java.util.Scanner;

public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String userText;
int numPun = 0; //number of punctiation and spaces
// Add more variables as needed

userText = scnr.nextLine(); // Gets entire line, including spaces.

for (int i = 0; i < userText.length(); i++){
if ((userText.charAt(i) != ' ') && (userText.charAt(i) != ',') && (userText.charAt(i) != '.'));{
numPun++;
}
}
System.out.println(numPun);
}
}
我现在的输出是到29,也就是整行的字符总数。预期输出应该是 21。我哪里出错了?

最佳答案

杂散分号终止 if ,并使用 &&不是 ||在此答案的先前版本中,我指定使用 ||而不是 && .不要那样做。感谢 Basil Bourque's answer因为是第一个指出这一点的人。
用:

for (int i = 0; i < userText.length(); i++){
char current = userText.charAt(i);
if (current != ' ' && current != ',' && current != '.'){
numPun++;
}
}
你有一个额外的 ;if语句表达式。
看到它 in action
说明:
在此答案的先前版本中,表达式 current != ' ' || current != ',' || current != '.'等于 if current is not a space or is not a comma or is not a period do this: .
这意味着如果字符是逗号,它会在 numPun 上加 1。 ,因为它不是一个空格。
在新表达式中,它等于 if current is not a space and is not a comma and is not a period .因此它会首先检查它是否是空格,然后是逗号,然后是句点。

关于java - 计算没有空格、逗号或句点的输入 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66727954/

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