vb 数字转换 一个数 转化成两个数

年华如水2022-10-04 11:39:541条回答

vb 数字转换 一个数 转化成两个数
两个文本,一个按钮.第一个文本可以输入1-5个数.分别是13579中的1-5个.其中1=38,3=49,5=05,7=16,9=27.
目的:第一个文本输入1-3个数,比如输入119,那么第二个文本能把1转化成38,9转化成27,重复的去重,结果就是3827.如果输入357,那么把3转化成49,5转化成05,7转化成16,结果就是490516.
这样的代码怎么写?

已提交,审核后显示!提交回复

共1条回复
donnysdwf 共回答了22个问题 | 采纳率81.8%
思路:
1.将文本框1的内容,读入到变量LinStr
2.将变量LinStr的值,分成若干个单个数字的值,存入数组变量D,去掉重复的不输入.
3.按照你的要求的规则,转换成字符串Ls
4.将Ls显示在文本框2
代码如下:
Private Sub Command1_Click()
Dim LinStr As String
Dim Ls As String
Dim L As Integer
Dim i As Integer
Dim d() As String
Dim n As Integer
Dim YesNo As Boolean
Dim j As Integer
LinStr = Text1.Text
L = Len(LinStr)
n = 0
For i = 1 To L
YesNo = False
For j = 1 To n
If d(j) = Mid(LinStr,i,1) Then
YesNo = True
Exit For
End If
Next j
If Not YesNo Then
n = n + 1
ReDim Preserve d(1 To n) As String
d(n) = Mid(LinStr,i,1)
End If
Next i
Ls = ""
For i = 1 To n
Select Case d(i)
Case "1"
Ls = Ls & "38"
Case "3"
Ls = Ls & "49"
Case "5"
Ls = Ls & "05"
Case "7"
Ls = Ls & "16"
Case "9"
Ls = Ls & "27"
End Select
Next i
Text2.Text = Ls
End Su
1年前

相关推荐

把汉语中的数字转换为阿拉伯数字谁能用perl编一段程序,将汉语中的数字(简体)转换为阿拉伯数字,像一百二十八->128,
把汉语中的数字转换为阿拉伯数字
谁能用perl编一段程序,将汉语中的数字(简体)转换为阿拉伯数字,像一百二十八->128,或提供一个思想.
如你在_远方1年前1
wangcorn 共回答了18个问题 | 采纳率77.8%
用switch,先将1到9的汉字分别转换过来,然后再查找万百千十,分别对应10000,1000,100,10,再看其前面的数字是多少就乘以几,比如一百二十八分为三个部分,一百,二十,八,取得一和百,用1乘100,加上2乘10,加上8,得出结果.
如何把数字转换英文单词,类似手机数字键盘
如何把数字转换英文单词,类似手机数字键盘
类似手机数字键盘上:数字1没有英文字母,数字2代表ABC,数字3代表DEF.数字9代表WXYZ
现在我有个含英文单词的words.txt文件,如果我输入"224",输出"bag""cai"(单词在words.txt里),如果单词库words.txt里面没有"bag""cai",则输出"没有匹配"
import java.io.*;
import java.util.*;
public class Q1{
x05static ArrayList words = new ArrayList();
x05final static String alphabet = "abcdefghijklmnoprstuvwxyz";
x05final static String numbers = "222333444555666777888999";
x05
x05public static void main(String args[]) throws IOException{
x05x05Scanner scanner = new Scanner(new File("words.txt"));
x05x05while (scanner.hasNext())
x05x05x05words.add(scanner.next());
x05x05String code = new Scanner(System.in).next();
x05x05
x05x05for (String word :words)
x05x05x05if (code.equals(toNumber(word))){
x05x05x05x05System.out.println(word);
x05x05x05x05System.exit(0);
x05x05x05x05}
x05x05
x05x05System.out.println("No solution");
x05x05}
x05
x05public static String toNumber(String word){
x05x05String s = "";
x05x05for (int i = 0; i < word.length(); i++)
x05x05x05s += numbers.charAt(alphabet.indexOf(word.charAt(i)));
x05x05return s;
x05x05}
}
这是我目前乱写的,可以的话麻烦帮我改一下,
伊芸01年前1
四八四 共回答了14个问题 | 采纳率78.6%
你这个是考算法的啊!我想到了几点:
1:你要把words.txt单词库中的单词逐个分离出来.这个不难,只要单词库中的单词之间有固定的界限(比如用空格来区分,或是逗号什么的)都可以用java.util.StringTokenizer类来分离.
2:将分离出来的单词存放在ArrayList list中
3:建立英文字母到数字的映射关系:public int index(chat c)//根据输入的char返回对应的数字.不如D/E/F返回3,需要注意的是,大D和小D都返回3.这个不难吧.
4:建立一个单词到数字的映射.public byte[] NOEncoding(String s)用到String类的charAt(int index)方法,逐个提取char,再用index()方法对应的数字来来确定,并将结果存放在byte数组中
5:遍历list链表,利用NOEncoding()方法,建立每个单词到数字的映射,就形成了新的单词库了.
6:最后一步啦,将输入的数字和对应的新的单词库做比较就行了.你的目的达到了.
附:java.util.StringTokenizer
ublic class StringTokenizerextends Objectimplements Enumerationstring tokenizer 类允许应用程序将字符串分解为标记.tokenization 方法比 StreamTokenizer 类所使用的方法更简单.StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释.
可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集.
StringTokenizer 的实例有两种行为方式,这取决于它在创建时使用的 returnDelims 标志的值是 true 还是 false:
如果标志为 false,则分隔符字符用来分隔标记.标记是连续字符(不是分隔符)的最大序列.
如果标志为 true,则认为那些分隔符字符本身即为标记.因此标记要么是一个分隔符字符,要么是那些连续字符(不是分隔符)的最大序列.
StringTokenizer 对象在内部维护字符串中要被标记的当前位置.某些操作将此当前位置移至已处理的字符后.
通过截取字符串的一个子串来返回标记,该字符串用于创建 StringTokenizer 对象.
下面是一个使用 tokenizer 的实例.代码如下:
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
输出以下字符串:
this
is
a
test
public StringTokenizer(String str,
String delim)为指定字符串构造一个 string tokenizer.delim 参数中的字符都是分隔标记的分隔符.分隔符字符本身不作为标记.
注意,如果 delim 为 null,则此构造方法不抛出异常.但是,尝试对得到的 StringTokenizer 调用其他方法则可能抛出 NullPointerException.
参数:
str - 要解析的字符串.
delim - 分隔符.
抛出:
NullPointerException - 如果 str 为 null.
附2:
我觉得这种思路较好一些:
1>如果建立数字到英文字母的映射,那么一个数字将返回多个字母,这个不是很好吧,不如2--abc.
2>建立数字到单词的映射,算法上不太好实现.比如224,就是abc abc ghi的全排雷,就要3*3*3这么多种,要是中文字还可以接受做多也就4*4*4*4*4这么多.但是英文不同了.
3>你单词库中的单词毕竟是有限的,就拿中文汉字来说,最多也1W左右.英文单词也不过如此.
所以这个不是大问题.
综上,我最终选择了这个算法来实现.
代码之际写吧.应该不存在大问题了.
(回答很辛苦啊,我还差6个最佳答案了!)
有道数字转换题需要大家帮助,2 12 36 80 80后面应该是哪个数字
gsmzhj1年前3
云冰 共回答了13个问题 | 采纳率92.3%
2=1^2*2
12=2^2*3
36=3^2*4
80=4^2*5
150=5^2*6
数字转换英文大写,欧元453120帮忙翻译成英文字母大写,
dengbin0101年前2
海关ww 共回答了24个问题 | 采纳率87.5%
Four hundred fifty-three thousand one hundred and twenty Euros
数字转换英文50 30 15 5 75 20 90 换成英语 急
novel771年前1
孤独云傲 共回答了22个问题 | 采纳率90.9%
50——fifty
30——thirty
15——fifteen
5——five
75——seventy five
20——twenty
90——ninety