Input1 = input.replaceAll 不工作
Input1 = input.replaceAll not working
所以我有一个扫描器,它接收一个字符串并将其保存到输入中,然后我尝试这样做
input.replaceAll("?/.,!' ", "");
并打印下面的行来测试它,但它并没有替换任何东西
import java.util.Scanner;
public class Test2 {
public static void main (String[]args){
Scanner sc = new Scanner (System.in);
System.out.print("Please enter a sentence: ");
String str = sc.nextLine();
int x, strCount = 0;
String str1;
str1 = str.replaceAll(",.?!' ", "");
System.out.println(str1);
for (x = 0; x < str1.length(); x++)
{
strCount++;
}
System.out.println("Character Count is: " + strCount);
}
}
这是我正在使用的代码。我只需要将所有标点符号和空格替换为空即可。
这一行:
str.replaceAll(",.?!' ", "");
将搜索整个字符串 ",.?!' “ 将被替代。
replaceAll 方法的参数是一个正则表达式。
所以,这样的东西肯定会更好:
str.replaceAll("[,.?!' ]", "");
除非字符 ,.?!
在输入 String
中一起出现,否则不会进行替换。您可以使用字符 class 来指定字符范围
str1 = str.replaceAll("[,.?!' ]", "");
replaceAll
将正则表达式作为第一个参数,因此需要格式化为:
str1 = str.replaceAll("[,.?!' ]", "");
第一个参数必须是正则表达式,这里是替代字符类 [ ... ]
.
String str1 = str.replaceAll("[?/.,!' ]", "");
或更广义的 s=whitespace, Punct=punctuation:
String str1 = str.replaceAll("[\s\p{Punct}]", "");
所以我有一个扫描器,它接收一个字符串并将其保存到输入中,然后我尝试这样做
input.replaceAll("?/.,!' ", "");
并打印下面的行来测试它,但它并没有替换任何东西
import java.util.Scanner;
public class Test2 {
public static void main (String[]args){
Scanner sc = new Scanner (System.in);
System.out.print("Please enter a sentence: ");
String str = sc.nextLine();
int x, strCount = 0;
String str1;
str1 = str.replaceAll(",.?!' ", "");
System.out.println(str1);
for (x = 0; x < str1.length(); x++)
{
strCount++;
}
System.out.println("Character Count is: " + strCount);
}
}
这是我正在使用的代码。我只需要将所有标点符号和空格替换为空即可。
这一行:
str.replaceAll(",.?!' ", "");
将搜索整个字符串 ",.?!' “ 将被替代。 replaceAll 方法的参数是一个正则表达式。
所以,这样的东西肯定会更好:
str.replaceAll("[,.?!' ]", "");
除非字符 ,.?!
在输入 String
中一起出现,否则不会进行替换。您可以使用字符 class 来指定字符范围
str1 = str.replaceAll("[,.?!' ]", "");
replaceAll
将正则表达式作为第一个参数,因此需要格式化为:
str1 = str.replaceAll("[,.?!' ]", "");
第一个参数必须是正则表达式,这里是替代字符类 [ ... ]
.
String str1 = str.replaceAll("[?/.,!' ]", "");
或更广义的 s=whitespace, Punct=punctuation:
String str1 = str.replaceAll("[\s\p{Punct}]", "");