Java - 如果单词以用户输入的分隔符结尾,则执行 x
Java - If word ends with user-entered delimiters, then do x
我是 Java 的新手,目前正在编写一个程序,该程序采用用户输入的参数作为包含句子的文本文件的定界符,然后根据提供的参数确定该文本文件中的句子数量分隔符。
When 运行 my Main.java I want the user to be able to do the following (where -d is the flag for delimiter and the characters following are the delimiters):
java 主要 -d !?.或 java Main -d .?
或任何其他组合。我的问题是:
- 将分隔符存储为字符串或数组的最佳方式是什么?
- 如何清楚地告诉我的程序使用传递的定界符?目前我的程序执行以下操作:
检查单词是否以任何指定的分隔符结尾。喜欢:
if (word.endsWith(".") || word.endsWith("!") || word.endsWith("?")) {
sentenceCount++
}
但我希望它是这样的:
if (word.endsWith(delimitersStringorArray.contains()) {
sentenceCount++
}
我希望这是有道理的,如有必要,我可以提供任何进一步的说明。我尝试搜索但没有找到我的具体问题。
谢谢!
如果您的分隔符只有一个字符长,您可以将分隔符存储在 List
中,然后检查 String
的最后一个字符是否在此列表中:
List<Character> delimiters = new ArrayList<Character>();
delimiters.add('.');
delimiters.add('!');
delimiters.add('?');
if(delimiters.contains(word.charAt(word.length() - 1))){
sentenceCount++;
}
可能最好的方法是使用 String
数组作为分隔符。
那是因为方法 endsWith
使用 String
作为参数。
问题是 class java.lang.String
中 endsWith 的实际版本不接受可能的分隔符数组,但可以创建自定义代码来执行相同的操作以下:
public class StringUtility {
public static boolean endsWith(String str, String[] delimiters) {
for (String delimiter : delimiters) {
if (str.endsWith(delimiter)) {
return true;
}
}
return false;
}
}
并使用如下代码调用它
String[] delimiters = { ".", "!", "?" };
if (StringUtility.endsWith("yourWord", delimiters)) {
// Do something
}
请注意,这是比您请求的更通用的代码,因为您可以检查传递的字符串是否以超过一个字符的分隔符结尾。
我是 Java 的新手,目前正在编写一个程序,该程序采用用户输入的参数作为包含句子的文本文件的定界符,然后根据提供的参数确定该文本文件中的句子数量分隔符。
When 运行 my Main.java I want the user to be able to do the following (where -d is the flag for delimiter and the characters following are the delimiters):
java 主要 -d !?.或 java Main -d .?
或任何其他组合。我的问题是:
- 将分隔符存储为字符串或数组的最佳方式是什么?
- 如何清楚地告诉我的程序使用传递的定界符?目前我的程序执行以下操作:
检查单词是否以任何指定的分隔符结尾。喜欢:
if (word.endsWith(".") || word.endsWith("!") || word.endsWith("?")) {
sentenceCount++
}
但我希望它是这样的:
if (word.endsWith(delimitersStringorArray.contains()) {
sentenceCount++
}
我希望这是有道理的,如有必要,我可以提供任何进一步的说明。我尝试搜索但没有找到我的具体问题。
谢谢!
如果您的分隔符只有一个字符长,您可以将分隔符存储在 List
中,然后检查 String
的最后一个字符是否在此列表中:
List<Character> delimiters = new ArrayList<Character>();
delimiters.add('.');
delimiters.add('!');
delimiters.add('?');
if(delimiters.contains(word.charAt(word.length() - 1))){
sentenceCount++;
}
可能最好的方法是使用 String
数组作为分隔符。
那是因为方法 endsWith
使用 String
作为参数。
问题是 class java.lang.String
中 endsWith 的实际版本不接受可能的分隔符数组,但可以创建自定义代码来执行相同的操作以下:
public class StringUtility {
public static boolean endsWith(String str, String[] delimiters) {
for (String delimiter : delimiters) {
if (str.endsWith(delimiter)) {
return true;
}
}
return false;
}
}
并使用如下代码调用它
String[] delimiters = { ".", "!", "?" };
if (StringUtility.endsWith("yourWord", delimiters)) {
// Do something
}
请注意,这是比您请求的更通用的代码,因为您可以检查传递的字符串是否以超过一个字符的分隔符结尾。