java中如何提取字符串中的数字?

Python013

java中如何提取字符串中的数字?,第1张

import java.io.BufferedReader

import java.io.InputStreamReader

import java.util.Arrays

public class NumberSplit {

public StringBuffer getString(String str) {

StringBuffer strbuf = new StringBuffer("t")

boolean flag = true

for (int i = 0i <str.length()i++) {

char c = str.charAt(i)

// 判断是否是数字

if (c >= '0'&&c <= '9') {

// 判断和字符中的数字是否重复

for (int j = 1j <strbuf.length()j++) {

if (c == strbuf.charAt(j)) {

// 如果重复,标志位数值为false,并跳出循环否则标志位设置为true.

flag = false

break

} else

flag = true

}

// 只有在即是数字又不重复的情况下才将改字符拼接到字符串上.

if (flag) {

strbuf.append(c)

}

}

}

return strbuf

}

public static void main(String args[]) throws Exception {

System.out.println("请输入一段字符串,并以回车结束")

BufferedReader buf = new BufferedReader(

new InputStreamReader(System.in))

String str = buf.readLine()

StringBuffer strbuf = new NumberSplit().getString(str)

// 将返回的StringBuffer转换为字符数组

char c[] = strbuf.deleteCharAt(0).toString().toCharArray()

// 对字符数组排序

Arrays.sort(c)

// 输出字符数组

for (int i = 0i <strbuf.length()i++) {

System.out.print(c[i])

}

}

import java.io.BufferedReader

import java.io.InputStreamReader

import java.util.Arrays

public class NumberSplit {

public StringBuffer getString(String str) {

 StringBuffer strbuf = new StringBuffer("t")

 boolean flag = true

for (int i = 0i <str.length()i++) {

  char c = str.charAt(i)

// 判断是否是数字

  if (c >= '0'&&c <= '9') {

   // 判断和字符串中的数字是否重复

   for (int j = 1j <strbuf.length()j++) {

    if (c == strbuf.charAt(j)) {

     // 如果重复,标志位数值为false,并跳出循环否则标志位设置为true.

   

flag = false

     break

    } else

     flag = true

   }

   // 只有在即是数字又不重复的情况下才将改字符拼接到字符串上.

   if (flag) {

    strbuf.append(c)

   }

  }

 }

 return strbuf

}

public static void main(String args[]) throws Exception {

 System.out.println("请输入一段字符串,并以回车结束")

 BufferedReader buf = new BufferedReader(

   new InputStreamReader(System.in))

 String str = buf.readLine()

StringBuffer strbuf = new NumberSplit().getString(str)

 // 将返回的StringBuffer转换为字符数组

 char c[] = strbuf.deleteCharAt(0).toString().toCharArray()

// 对字符数组排序

 Arrays.sort(c)

 // 输出字符数组

 for (int i = 0i <strbuf.length()i++) {

  System.out.print(c[i])

 }

}

1.split()+正则表达式来进行截取。

将正则传入split()。返回的是一个字符串数组类型。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。

String str = "abc,12,3yy98,0"

String[]  strs=str.split(",")

for(int i=0,len=strs.lengthi<leni++){

System.out.println(strs[i].toString())

}

运行结果:

abc

12

3yy98

0

2.通过subString()方法来进行字符串截取。

subString通过不同的参数来提供不同的截取方式

2.1只传一个参数

例如:

String sb = "bbbdsajjds"

sb.substring(2)

将字符串从索引号为2开始截取,一直到字符串末尾。(索引值从0开始);

2.2传入2个索引值

String sb = "bbbdsajjds"

sb.substring(2, 4)

从索引号2开始到索引好4结束(并且不包含索引4截取在内,也就是说实际截取的是2和3号字符);

运行结果如下:

bdsajjds

bd

3.通过StringUtils提供的方法

StringUtils.substringBefore(“dskeabcee”, “e”)

/结果是:dsk/

这里是以第一个”e”,为标准。

StringUtils.substringBeforeLast(“dskeabcee”, “e”)

结果为:dskeabce

这里以最后一个“e”为准。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

如果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中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。