java截取字符串中的数字,并且分组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java截取字符串中的数字,并且分组?相关的知识,希望对你有一定的参考价值。

例如
String str="鱼豆腐20海带3掌中宝8鸡翅2可乐2"

如何自动分成字符串数组,数字是可变的,菜单名也是可变的
鱼豆腐20
海带3
掌中宝8
鸡翅2
可乐2

用正则表达式按数字和中文的交界处切分字符串,就可以实现你的要求,完整的Java程序如下

public class F

 public static void main(String[] args)

  String str="鱼豆腐20海带3掌中宝8鸡翅2可乐2";

  String[] s=str.split("(?<=[0-9])(?=[\\u4e00-\\u9fa5])");

  for(int i=0;i<s.length;i++)

   System.out.println(s[i]);

 

 

参考技术A substring
public class Test

public static void main(String[] args)
String a="123fggs2fg6";
for(int i=0;i<a.length();i++)

String one=a.substring(i, i+1);
char ar=one.charAt(0);
if(ar>='0' && ar<='9' )

//是数字
System.out.println(ar);




参考技术B substring
public class Test

public static void main(String[] args)
String a="123fggs2fg6";
for(int i=0;i<a.length();i++)

String one=a.substring(i, i+1);
char ar=one.charAt(0);
if(ar>='0' && ar<='9' )

//是数字
System.out.println(ar);




参考技术C substring
public class Test

public static void main(String[] args)
String a="123fggs2fg6";
for(int i=0;i<a.length();i++)

String one=a.substring(i, i+1);
char ar=one.charAt(0);
if(ar>='0' && ar<='9' )

//是数字
System.out.println(ar);




参考技术D substring
public class Test

public static void main(String[] args)
String a="123fggs2fg6";
for(int i=0;i<a.length();i++)

String one=a.substring(i, i+1);
char ar=one.charAt(0);
if(ar>='0' && ar<='9' )

//是数字
System.out.println(ar);




java 判断一个字符串中的数字:是否为数字是否包含数字截取数字

题外话:

  JavaScript中判断一个字符是否为数字,用函数:isDigit();

一、判断一个字符串是否都为数字

package com.cmc.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DigitUtil {

    public static void main(String[] args) {
        String str="123d";
        System.out.println(isDigit2(str));
    }
    
    //判断一个字符是否都为数字 
    public static boolean isDigit(String strNum){
        return strNum.matches("[0-9]{1,}");
    }
    
    // 判断一个字符串是否都为数字  
    public static boolean isDigit2(String strNum) {  
        Pattern pattern = Pattern.compile("[0-9]{1,}");  
        Matcher matcher = pattern.matcher((CharSequence) strNum);  
        return matcher.matches();  
    }
}

 

二、判断字符串中是否包含数字

// 判断一个字符串是否含有数字
    public boolean HasDigit(String content) {
        boolean flag = false;
        Pattern p = Pattern.compile(".*\\d+.*");
        Matcher m = p.matcher(content);
        if (m.matches()) {
            flag = true;
        }
        return flag;
    }

 

三、截取字符串中的数字

package com.cmc.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DigitUtil {

    public static void main(String[] args) {
        String str="123dsd99";
        System.out.println(getNumbers(str));  //===>  123
System.out.println(splitNotNumber(str)); //===> dsd }
//截取数字 【读取字符串中第一个连续的字符串,不包含后面不连续的数字】 public static String getNumbers(String content) { Pattern pattern = Pattern.compile("\\d+"); Matcher matcher = pattern.matcher(content); while (matcher.find()) { return matcher.group(0); } return ""; } // 截取非数字 public static String splitNotNumber(String content) { Pattern pattern = Pattern.compile("\\D+"); Matcher matcher = pattern.matcher(content); while (matcher.find()) { return matcher.group(0); } return ""; } }

 

四、判断字符串是否为数字的方法

  (一)用java自带函数

    public static void main(String[] args) {
        String str="12399";
        System.out.println(isNumeric(str));
    }
    
    //判断一个字符串是否为数字
    public static boolean isNumeric(String str){
        for (int i =  str.length(); --i>=0;) {
            if(!Character.isDigit(str.charAt(i))){
                return false;
            }
        }
        return true;
    }

  (二)用正则表达式 

    public static void main(String[] args) {
        String str="123p99";
        System.out.println(isNumeric2(str));
    }
    
    public static boolean isNumeric2(String str){
        Pattern pattern=Pattern.compile("[0-9]*");
        return pattern.matcher(str).matches();
    }

  (三)用ASCII码

    public static void main(String[] args) {
        String str="12399";
        System.out.println(isNumeric3(str));
    }
    
    //判断一个字符串是否为数字
    public static boolean isNumeric3(String str){
        for(int i=str.length(); --i>=0;){
            char c=str.charAt(i);
            if (c < 48 || c > 57)
                return false;
        }
        return true;
    }

 

以上是关于java截取字符串中的数字,并且分组?的主要内容,如果未能解决你的问题,请参考以下文章

SQL怎么截取一个字符串数字出现前的值

截取ORACLE字符串中的数字

java中如何截取字符串?

java 判断一个字符串中的数字:是否为数字是否包含数字截取数字

java 如果截取的字符串不是数字怎么判断

java截取指定字符串中的某段字符如何实现?