Java:从字符串中删除数值
我已经在这个社区的帮助下取代了从用户输入中删除数值,但是,我的代码只会在删除数字之前检索字母字符:
import java.util.Scanner; public class Assignment2_A { public static void main(String[] args) { // TODO Auto-generated method stub Scanner firstname = new Scanner(System.in); System.out.println("Please enter your first name:"); String firstname1 = firstname.next(); firstname1 = firstname1.replaceAll("[^AZ]",""); System.out.println(firstname1); } }
例如,如果用户输入= S1234am,我只会回来:S。如何检索字符串中的剩余字符?
您的正则表达式[^AZ]
目前仅配置为保留大写字母。 您可以尝试用[^A-Za-z]
替换它以保留小写字母。
这将删除所有数字:
firstname1 = firstname1.replaceAll("\\d","");
您可以使用:
firstname1 = firstname1.replaceAll("[0-9]","");
这将从String 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 ตรวจสอบ ตรวจสอบ التحقق من التحقق من
你的正则表达式:
[^AZ]
匹配任何不是大写字母的东西 。
这意味着任何小写字母也会匹配。
您应该使用:
[^A-Za-z]
作为正则表达式而不是。
另请注意,除了ASCII之外,这不会考虑任何其他因素。 它可能是,也可能不是你想要的。
/*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; } }