Integer :: iInt = 0
Read( cStr , ) iInt
此时,iInt = 123(数字)
转换成浮点数也类似。
character( 3 ) :: cStr = '123'
Real :: rReal = 00
Read( cStr , ) rReal
此时 rReal = 1230
从数字转换成字符串,用 Write 既可
character( 3 ) :: cStr
Integer :: iInt = 123
Write( cStr , ) iInt
此时 cStr = '123'
可以用如下自定义函数:
Public Function mystr(ll, ParamArray x())Dim r, rr
For Each r In x
If IsArray(r) Then
For Each rr In r
If rr <> "" Then mystr = mystr & ll & rr
Next rr
Else
mystr = mystr & ll & r
End If
Next r
mystr = Mid$(mystr, 2, Len(mystr))
End Function
第一参数:连接符
第二参数:需要连接的单元格区域。
第三、四……参数:可省略,如不省略,功能同第二参数。
如上例可写公式为:=mystr(",",A1:A4)
想了一个比较笨的方法。先在R里定义这个函数:
splitstring<-function(string){str2<-strsplit(string,"")[[1]]
stringsplit<-NULL
j<-1
stringsplit[j]<-str2[1]
findtype<-function(char){
if(grepl("[[:alpha:]]",char))
type<-"alphabet"
else if(grepl("[[:digit:]]",char))
type<-"digit"
else type<-"chinese"
type
}
type<-findtype(str2[1])
for(i in 2:length(str2)){
type2<-findtype(str2[i])
if(type2==type) stringsplit[j]<-paste(stringsplit[j],str2[i],sep="")
else{
j<-j+1
type<-type2
stringsplit<-c(stringsplit,str2[i])
}
}
stringsplit
}
直接跑
splitstring("中国123abc")就好了
如果要区分更多的东西,就改一下内部的findtype()函数。我现在写的只能区分字母、数字和其他东西(比如标点和中文就分不开了)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)