Java:从字符串中删除数值
在这个社区的帮助下,我成功地从用户输入中删除了数值,但是,我下面的代码将只检索已删除数值之前的字母字符:Java:从字符串中删除数值,java,string,removeall,Java,String,Removeall,在这个社区的帮助下,我成功地从用户输入中删除了数值,但是,我下面的代码将只检索已删除数值之前的字母字符: import java.util.Scanner; public class Assignment2_A { public static void main(String[] args) { Scanner firstname = new Scanner(System.in); String firstname1 = firstname.next(
import java.util.Scanner;
public class Assignment2_A {
public static void main(String[] args) {
Scanner firstname = new Scanner(System.in);
String firstname1 = firstname.next();
firstname1 = firstname1.replaceAll("[^A-Z]","");
System.out.println(firstname1);
}
}
例如,如果用户输入=S1234am,我只返回:S。如何检索字符串中的剩余字符?您的正则表达式
[^A-Z]
当前仅配置为保留大写字母。您可以尝试将其替换为[^A-Za-z]
以保留小写字母。这将删除所有数字:
firstname1 = firstname1.replaceAll("\\d","");
你的正则表达式:
[^A-Z]
匹配任何不是大写字母的内容
这意味着任何小写字母也将匹配
您可能应该使用:
[^A-Za-z]
作为正则表达式
还请注意,这将不考虑ASCII以外的任何内容。它可能是您想要的,也可能不是您想要的。您可以使用:
firstname1 = firstname1.replaceAll("[0-9]","");
这将从字符串firstName1
中删除所有数值
String firstname1 = "S1234am";
firstname1 = firstname1.replaceAll("[0-9]","");
System.out.println(firstname1);//Prints Sam
如何从字符串中删除数值: 这样做就足够了
str.replaceAll("[^A-Za-z]","");
但如果字符串包含以下字符,该怎么办
String str = "stackoverflow elenasys +34668555555 # Пивоварова Пивоварова հայեր հայեր አማሪኮ አማሪኮ kiểm tra kiểmtra ตรวจสอบ ตรวจสอบ التحقق من التحقق من";
大多数字符也将被删除,因此这是一个更好的选择:
str = str.replaceAll("[\\d.]", "");
要删除所有数值并获取结果,请执行以下操作:
stackoverflow elenasys + # Пивоварова Пивоварова հայեր հայեր አማሪኮ አማሪኮ kiểm tra kiểmtra ตรวจสอบ ตรวจสอบ التحقق من التحقق من
/*从给定的特定字符串中删除数字*/
公共类NewClass6{
公共静态void main(字符串[]args){
字符串s=“hello647hi74joke”;
char[]ch=s.toCharArray();
System.out.println(“Result=“+getString(ch));
}
静态字符串getString(char[]ch){
int m=0;
char[]chr=新字符[50];
char[]k={0','1','2','3','4','5','6','7','8','9'};
for(int i=0;i
公共静态void main(字符串[]args){
字符串地址=“34732483dhshdsdhajsa8ejdsdd”;
char[]chars=address.toCharArray();
字符串aString=“”;
for(int i=0;i
u也需要替换小写字母。如果目标真的是删除所有数字,那么使用\\d
会更好,但目前的设计方式表明目标可能只是保留A-Za-z
。Gian,感谢您的帮助。我会给你竖起大拇指,但显然我对这个网站太新了,不能这么做。谢谢你抽出时间!感谢您的时间和专业知识!感谢您提供这段代码片段,它可能会提供一些有限的、即时的帮助。一个恰当的解释将通过说明为什么这是一个很好的问题解决方案而大大提高它的长期价值,并将使它对未来有其他类似问题的读者更有用。请编辑您的答案以添加一些解释,包括您所做的假设。此答案与问题更相关,因为使用[^A-Za-z]还将删除空格和除数值以外的任何其他值。我认为这是最佳答案。除-1外,上面的其他(一些)是可以的,但在我看来,这一个是最好的,因为它简短、简洁、清晰,而且非常切题。指定的范围0-9也是其他语言通常使用的范围。
/*Remove numbers from given specific string*/
public class NewClass6 {
public static void main(String[] args){
String s= "hello647hi74joke";
char[] ch= s.toCharArray();
System.out.println("Result = " + getString(ch));
}
static String getString(char[] ch){
int m = 0;
char[] chr = new char[50];
char[] k = {'0','1','2','3','4','5','6','7','8','9'};
for(int i = 0; i < ch.length; i++){
for(int j = 0; j < k.length; j++){
if(ch[i]==k[j]){
m--;
break;
}
else {
chr[m]=ch[i];
}
}
m++;
}
String st = String.valueOf(chr);
return st;
}
}
public static void main(String[] args) {
String address = "34732483dhshdsdhajsa8ejdsdd";
char[] chars = address.toCharArray();
String aString = "";
for (int i = 0; i < chars.length; i++) {
if (!Character.isDigit(chars[i])) {
aString =aString + chars[i];
}
}System.out.println(aString);
}