把String转换成Char有错误
--------------------编程问答-------------------- 你那个字符串n可能不止一个字符,比如n=1234 而char只能存一个字符 char='1' char='2' --------------------编程问答-------------------- 你把 “顶顶顶顶顶顶” 这么多字符转成char,能转吗,每种数据都是有取值范围的 --------------------编程问答-------------------- 那我该怎么改动一下呢能不能帮帮我改一下,谢谢! --------------------编程问答-------------------- 这是我的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static char[] constant =
{
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
private void Form1_Load(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
//i1表示输入数
int i1;
if (String.IsNullOrEmpty(textBox1.Text.Trim()))
{
MessageBox.Show("输入数不能为空,谢谢!");
return;
}
//把文本框1的数字字符串转换成32位的整数后赋给i1
i1 = Convert.ToInt32(textBox1.Text.Trim());
if (i1 == 0)
{
MessageBox.Show("输入数不能为0,谢谢!");
return;
}
else if (i1 > 63)
{
MessageBox.Show("输入的数字不得大于62,谢谢!");
}
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62);
Random rd = new Random();
//定义一个整数i作为计数器
int i;
string n;
char p;//,q;
int m = 61;
//int tmp;
listBox1.Items.Clear();
for (i = 0; i < i1; i++)
{
char [] Newnum = new char[i1];
newRandom.Append(constant[rd.Next(62)]);
n = newRandom.ToString();
Newnum[i] = Convert.ToChar(n);
//q = Convert.ToChar(n);
//foreach (char q in n)
//p = q;
//q = constant[m];
// constant[m] = p;
p = Newnum[i];
Newnum[i] = constant[m];
constant[m] = p;
listBox1.Items.Add(constant[m]);
m--;
}
}
}
} --------------------编程问答-------------------- 不要用char数组来存数据就可以了
char [] Newnum = new char[i1];
改成
string [] Newnum = new string [i1]; --------------------编程问答--------------------
但是红色线部分,会提示不能把char转换成string
--------------------编程问答-------------------- 问下你这个窗口是拿来干啥用的 --------------------编程问答-------------------- 生成自己想要输出位数的随机生成数,从1~9,A~Z,a~z,生成不能重复。 --------------------编程问答--------------------
string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";--------------------编程问答-------------------- CodeCount是参数. --------------------编程问答-------------------- 你把字符转成char,肯定不行啊;我不明白 你这是做数字的计数,为什么要把数转换成char和string类型呢;int decimal不都可以么 --------------------编程问答-------------------- 9楼和10楼的应该可以,至于6楼那个为什么会出错,因为你前面是定义的private static char[] constant{}是字符类型的,下面的Newnum把char变成了string类型,但是你p又是char类型,这里把string变成char类型就肯定会报错啊,。。这问题一眼就看出来了, --------------------编程问答-------------------- 不需转化后遍历,直接即可
string[] allCharArray = allChar.Split(Convert.ToChar(","));
string RandomCode = "";
int temp = -1;
Random rand = new Random();
for (int i = 0; i < CodeCount; i++)
{
if (temp != -1)
{
rand = new Random(temp * i * ((int)DateTime.Now.Ticks));
}
int t = rand.Next(62);
while (temp == t)
{
t = rand.Next(62);
}
if (t == 62)
{
Console.WriteLine(t.ToString() + "|" + i.ToString());
}
temp = t;
RandomCode += allCharArray[t];
}
return RandomCode.ToLower();
listBox1.Items.Clear();
for (i = 0; i < i1; i++)
{
newRandom.Append(constant[rd.Next(62)]);
foreach (char q in newRandom.ToString())
p = q;
......
}
补充:.NET技术 , ASP.NET