1、如下图,要提取#后面的字符,也即红色的“SDK”到B列。
2、首先,在B2中输入公式:
=FIND("#",A2)
返回#在字符串中的位置,#在A2单元格文本中是第6个字符。
3、知识点说明:
FIND()函数查找第一参数在第二参数中的位置。如下图,查找“B”在“ABCD”中是第几个字符。第一参数是要查找的字符“B”,第二参数是被查找的字符串。最终返回“B”在“ABCD”中是第2个字符。
4、然后,在B2中输入公式:=MID(A2,FIND("#",A2)+1,99)
这样,就提取出了#后的字符。
5、知识点说明:MID()函数返回从字符串中制定字符开始若干个字符的字符串。如下图,MID()函数返回“ABCDE”字符串中从第2个字符开始的连续3个字符,也就是返回“BCD”。
6、综上,=MID(A2,FIND("#",A2)+1,99)的意思就是从A2单元格#字符后面的一个字符起,取长度为99的字符串。其中的99是一个较大的数字,能涵盖#后字符的最大长度即可。public static void main(String[] args) {
String s1="10 23 42 2 32 1 3 2 7 6";
String[] strArray = s1split(" ");
int[] intArray = new int[10];
for(int i=0;i<strArraylength;i++){
intArray[i] = IntegerparseInt(strArray[i]);
}
}
用split函数,空格作为参数。转化为字符串数组,再转为int数组。
intArray[i]就是10个int的数组。
用循环么
for(i=0;input [i]!='\0';i++ ){}
//一个空循环,循环到数组结尾跳出循环
printf("%d",i);
//输出的i就是数组元素个数
import javaioBufferedReader;
import javaioInputStreamReader;
import javautilArrays;
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t");
boolean flag = true;
for (int i = 0; i < strlength(); i++) {
char c = strcharAt(i);
// 判断是否是数字
if (c >= '0'&& c <= '9') {
// 判断和字符串中的数字是否重复
for (int j = 1; j < strbuflength(); j++) {
if (c == strbufcharAt(j)) {
// 如果重复,标志位数值为false,并跳出循环;否则标志位设置为true
flag = false;
break;
} else
flag = true;
}
// 只有在即是数字又不重复的情况下才将改字符拼接到字符串上
if (flag) {
strbufappend(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
Systemoutprintln("请输入一段字符串,并以回车结束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(Systemin));
String str = bufreadLine();
StringBuffer strbuf = new NumberSplit()getString(str);
// 将返回的StringBuffer转换为字符数组
char c[] = strbufdeleteCharAt(0)toString()toCharArray();
// 对字符数组排序
Arrayssort(c);
// 输出字符数组
for (int i = 0; i < strbuflength(); i++) {
Systemoutprint(c[i]);
}
}
import javaioBufferedReader;
import javaioInputStreamReader;
import javautilArrays;
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t");
boolean flag = true;
for (int i = 0; i < strlength(); i++) {
char c = strcharAt(i);
// 判断是否是数字
if (c >= '0'&& c <= '9') {
// 判断和字符串中的数字是否重复
for (int j = 1; j < strbuflength(); j++) {
if (c == strbufcharAt(j)) {
// 如果重复,标志位数值为false,并跳出循环;否则标志位设置为true
flag = false;
break;
} else
flag = true;
}
// 只有在即是数字又不重复的情况下才将改字符拼接到字符串上
if (flag) {
strbufappend(c);
}
}
}
return strbuf;
}
public static void main(String args[]) throws Exception {
Systemoutprintln("请输入一段字符串,并以回车结束");
BufferedReader buf = new BufferedReader(
new InputStreamReader(Systemin));
String str = bufreadLine();
StringBuffer strbuf = new NumberSplit()getString(str);
// 将返回的StringBuffer转换为字符数组
char c[] = strbufdeleteCharAt(0)toString()toCharArray();
// 对字符数组排序
Arrayssort(c);
// 输出字符数组
for (int i = 0; i < strbuflength(); i++) {
Systemoutprint(c[i]);
}
}
给你一个方法吧,你只要直接调用这个方法就可以了
/// <summary>
/// 获取两个字符串之间的字符
/// </summary>
/// <returns></returns>
public static string GetValueAnd(string strStart, string strEnd, string text)
{
if (stringIsNullOrEmpty(text))
return "";
string regex = @"^" + strStart + "(<content>+)" + strEnd + "$";
Regex rgClass = new Regex(regex, RegexOptionsSingleline);
Match match = rgClassMatch(text);
return matchGroups["content"]Value;
}
#include<stdioh>
void
main()
{
char
str[10]={'1','a','2','b','3','4','c','\0'};
int
i;
for(i=0;str[i]!='\0';i++)
if(str[i]>'0'&&str[i]<'9')
printf("%c\n",str[i]);
}
方法:从字符串第一个字符开始判断,通过for循环一个个的如果是当前字符,也就是str[i]比0大而且比9小,那么它就是数字,然后输出它就可以了。
两点需要注意:
(1)因为定义的是字符数组,所以printf输出的时候需要时%c单个字符的格式;
(2)if判断条件0和9要加单引号调用ASCII码,如果不加单引号就默认是ASCII码为0和9的字符而不是阿拉伯数字。
这个程序用的初始化,如果需要,可以编写用户输入数据的。
以上就是关于怎样提取字符串中的数字啊全部的内容,包括:怎样提取字符串中的数字啊、java:从String中提取数字、如何获取String数组元素个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)