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

Python012

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])

 }

}

java中有很多种方式可以将字符串转为数字,要把字符串正确地转换成数字需输入以下代码:

size_t facebook_uint32_to_str(uint32_t value, char *dst)

{

static const char digits[201] =

"0001020304050607080910111213141516171819"

"2021222324252627282930313233343536373839"

"4041424344454647484950515253545556575859"

"6061626364656667686970717273747576777879"

"8081828384858687888990919293949596979899"

size_t const length = digits10(value)

size_t next = length - 1

while (value >= 100) {

auto const i = (value % 100) * 2

value /= 100

dst[next] = digits[i + 1]

dst[next - 1] = digits[i]

next -= 2

}

// Handle last 1-2 digits

if (value < 10) {

dst[next] = '0' + uint32_t(value)

} else {

auto i = uint32_t(value) * 2

dst[next] = digits[i + 1]

dst[next - 1] = digits[i]

}

return length

}

执行赋值语句a="123"+"456"后,变量a的值是"123456"。

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。通常以双引号内部的整体作为操作对象。字符串的连接运算语句公式为s1+s2+s3+…+sn。因此,"123"和"456"是字符串,a为字符串拼接结果即"123456"。

扩展资料:

字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。

String类不可变,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。