「java提取数字和字母」java提取数字和字母的公式
今天给各位分享java提取数字和字母的知识,其中也会对java提取数字和字母的公式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 取字符串的中字母数字组合?
- 2、Java中如何将字符串中含有两个字母组成的单词获取出来
- 3、用java找出字符串中的数字和字母
- 4、java中怎么把一个字符串中数字和字符分别提取出,例如字符串12+3,要提取成12,3,+,并且打印出来。
- 5、java中根据一段字符串,获取其中的字母,有要求;求个具体代码
- 6、Java中 怎么实现从字符串中提取数字
java 取字符串的中字母数字组合?
代码截图
运行结果
以下是全部代码,不管你字母是什么,字母后边有多少数字,都能取出来,如果是只需要数字,那么拼接的时候别拼接那个字母就OK
public static void main(String[] args) {
String str = "p17g1n12f3";
StringBuffer data = new StringBuffer();
String[] arr = new String[4];
for (int i = 0,j=0,leni = str.length();ileni;i++){
str.charAt(i);
if (check(str.charAt(i))){
if (StringUtils.isBlank(data.toString())){
data.append(str.charAt(i));
}else {
arr[j] = data.toString();
j++;
data = new StringBuffer();
data.append(str.charAt(i));
}
}
if (isNumberic(str.charAt(i)+"")){
data.append(str.charAt(i));
}
if (i+1 == leni){
arr[j] = data.toString();
}
}
System.out.println(Arrays.toString(arr));
}
/**
* 判断字符串是否为数字
*
* @param str
* @return
*/
public static boolean isNumberic(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
/**
* 判断一个字符串是否为字母
*
* @param fstrData
* @return
*/
public static boolean check(char fstrData) {
char c = fstrData;
if (((c = 'a' c = 'z') || (c = 'A' c = 'Z'))) {
return true;
} else {
return false;
}
}
Java中如何将字符串中含有两个字母组成的单词获取出来
如果s='123abc'取得s1='abc'
用正则,例如:s="123abc4a"printre.findall("[a-z]+",s)结果是:['abc','a']。
扩展资料
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为s=“a1a2···an”(n=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
补充:字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
用java找出字符串中的数字和字母
public static void main(String[] args){
boolean isDigit = false;//定义一个boolean值,用来表示是否包含数字
boolean isLetter = false;//定义一个boolean值,用来表示是否包含字母
String str = "aaasss8fff"; //假设有一个字符串
for(int i=0 ; istr.length() ; i++){ //循环遍历字符串
if(Character.isDigit(str.charAt(i))){ //用char包装类中的判断数字的方法判断每一个字符
isDigit = true;
}
if(Character.isLetter(str.charAt(i))){ //用char包装类中的判断字母的方法判断每一个字符
isLetter = true;
}
}
/*循环完毕以后
*如果isDigit为true,则代表字符串中包含数字,否则不包含
*如果isLetter为true,则代表字符串中包含字母,否则不包含
*/
System.out.println(isDigit);
System.out.println(isLetter);
}
java中怎么把一个字符串中数字和字符分别提取出,例如字符串12+3,要提取成12,3,+,并且打印出来。
先把字符串分割成字符数组,三种方式判断是不是数字
参考
1.java自带函数
for (int i = str.length();--i=0;){
if (!Character.isDigit(str.charAt(i))){
这里将非数字提取
}else{
这里将数字提取
}
}
2用正则表达式,不过这个是判断整个字符串的。你把字符串分割了再循环调用
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
3用ascii码,这个最简单了,小雨0或者大于9的asscii码就肯定不是数字
public static boolean isNumeric(String str){
for(int i=str.length();--i=0;){
int chr=str.charAt(i);
if(chr48 || chr57)
return false;
}
return true;
}
java中根据一段字符串,获取其中的字母,有要求;求个具体代码
要求1中要去掉所有数字,要求2、3中又要保留数字并进行翻译,所以我两种都写了。具体代码为:
public class Test {
public static void main(String args[]) {
String str = "0as2sw$#3Six";
System.out.println("原字符串:[" + str + "]");
System.out.println("");
//不翻译数字
SetString set1 = new LinkedHashSet();
for (String s : str.split("[^A-Z a-z]")) {
if (s.length() 0) {
set1.add(s);
}
}
System.out.println("不翻译数字的结果:" + set1);
System.out.println("");
/*因为又要去除非字母和数字(以下简称去杂),又要将去杂结果分离成数字和字母,再翻译数字,整个流程挺麻烦的,索性在去杂之前,先将数字翻译成英文,为了使数字翻译后的英文和原字符串的字母分开,在数字左右添加占位符#,这样的话,形如:[a1b2c3]就会被处理为:[a#one#b#two#c#three#],这样去杂后,就会被分割为:[a,one,b,two,c,three]了。这里定义了枚举值English,用于实现0-9的英文映射,[10]不好映射成[ten],现在只能映射为[one,zero],如果按照题干非要映射为ten的话你再考虑考虑吧*/
for (English english : English.values()) {
str = str.replaceAll(english.getNum() + "", "#" + english.name() + "#");
}
System.out.println("将数字替换为“占位符 + 英文 + 占位符”的中间结果:[" + str + "]");
System.out.println("");
//翻译数字的结果
SetString set2 = new LinkedHashSet();
for (String s : str.split("[^A-Za-z]")) {
if (s.length() 0 ) {
//判断当前字符串是否是数字的英文,如果不是,就把它拆成单字母
if (mappingEnglish(s)){
set2.add(s);
}else {
for (char c : s.toCharArray()) {
set2.add(String.valueOf(c));
}
}
}
}
System.out.println("翻译数字的结果:" + set2);
}
//判断当前字符串是否是数字的英文
private static boolean mappingEnglish(String str) {
for (English english : English.values()) {
str = str.toLowerCase();
if (english.name().equals(str)) {
return true;
}
}
return false;
}
enum English {
zero(0),
one(1),
two(2),
three(3),
four(4),
five(5),
six(6),
seven(7),
eight(8),
nine(9);
private int num;
public int getNum() {
return num;
}
English(int num) {
this.num = num;
}
}
}
我怕发出来代码又挤在一起,顺便也截个图:
8-21行
22-50行
51-61行
62-85行完
运行结果:
Java中 怎么实现从字符串中提取数字
import java.util.ArrayList;
import java.util.List;
public class T4 {
public static void main(String[] args) {
String s = "13+45=";
boolean flag = false;
String ss ="";
ListInteger list = new ArrayListInteger();
for (int i = 0; i s.length(); i++) {
for (int j = 0; j 10; j++) {
if (String.valueOf(s.charAt(i)).equals(String.valueOf(j))) {
flag=true;
}
}
if(flag){
ss=ss+s.charAt(i);
flag=false;
}else{
list.add(Integer.parseInt(ss));
ss="";
}
}
int sum=0;
for(int i=0;ilist.size();i++){
sum=sum+list.get(i);
}
System.out.println(sum);
}
}
关于java提取数字和字母和java提取数字和字母的公式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-23,除非注明,否则均为
原创文章,转载请注明出处。