java字符串定长
‘壹’ java如何定义定长字符串
这个之和jvm你的内存分配有关,如果你需要很长的字符串,最好写在
文本文件中,然后使用的时候通过文本文件来获得。
‘贰’ Java怎么生成一个指定长度的字符串,且这个字符串必须包含大小写字母和数字
这个容易, 此题关键部分是
1。 了解ASCII码的定义
2。 会使用随机函数
我不想直接把代码给你写出来,因为这可能是你的试题或者家庭作业,你需要自己去练习一下,才能进步。
但我把思路告诉你:
1. 字符串的长度不能少于3,即一个大写,一个小写,一个数字,这是最起码的,所以你可以先生成这三个字符先,
2, 这三个字符的生成采用随机数生成, 但随机数不是真的随机,你可以了解一下随机函数的参数,呵呵,它可以设定一个随机范围。 比如你可以指定生成 0〜100内的随机整数
3, 指定随机范围为 0〜9 从而可以生成数字
4, 再者指定随机范围为 65~90 得到的整数再转成char可以得到 ASCII码的大写字母
5, 同理指定随机范围为 97〜122得小写字母
6, 剩下的字符就随便随机从0〜255再转成ASCII码
如果你的需求是这次序也要是随机的,就需要再改进这个算法,最简单的就是:
1。 FOR循环指定的长度,
2。 每次随机生成一个字符CHAR,这个CHAR的随机范围只满足我前面说过的情况,要么0〜9,要么59〜90,要么97〜122, 字母的话,整数要强转成CHAR才能得到字母,本身就是0〜9的数字的话就不需要转了。
3。 每次新生成的字符加上前面己生成的字符最终得到结果
4。 将结果进么检测,看是否满足三个条件,如果满足返回结果,如不满足递归函数自己再次走1〜3步。
另外如果你在第二步进行改进,记录下己经产生过数字下次希望产生字母的逻辑,则第4步就可以不需要用递归了。具体算法自己再好好想想
‘叁’ Java怎么生成一个指定长度的字符串类似于验证码
我写了个方法,参数是你指定的长度,按照这个方法,可以随机生成字符串。但是不保证重复,可以参考一下。
publicclassRandomString{
privatefinalstaticbyte[]seed={'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'};
(intlength){//参数为指定的字符串长度
Stringstr="";
StringBufferbuffer=newStringBuffer();
for(intj=0;j<length;j++){
inti=(int)(Math.random()*25);
charb=(char)seed[i];
buffer.append(b);
}
str=buffer.toString();
returnstr;
}
publicstaticvoidmain(String[]args){
StringrandomStr=getRandomString(6);
System.out.println(randomStr);
}
}
‘肆’ java怎么生成定长字符串
建议先写一个定字长的字符串,比如XXXXXXXXXX,然后通过通过字符串替换函数replaceAll(),来将X替换成你需要的那个字符就行了
‘伍’ Java:应该如何将字符串格式化成固定长度呢
随便自己写个方便啊。
/**
* 获取定长的字符串
* @param str 原始字符串
* @param len 固定长度
* @param c 不够填充的字符
* @return 固定长度的字符串
*/
public static String getFixedLenString(String str, int len, char c) {
if (str == null || str.length() == 0){
str = “”;
}
if (str.length() == len){
return str;
}
if (str.length() > len){
return str.substring(0,len);
}
StringBuilder sb = new StringBuilder(str);
while (sb.length() < len){
sb.append(c);
}
return sb.toString();
}
‘陆’ java 固定字符串长度问题:
大量数据的话,定义String[] blanks,里面包含10元素,0个空格,1个空格,2个空格....直到9个空格,需要处理的字符串假设是str,结果就是str + blanks[10 - str.length],当然不应该用字符串连接,应该用一个StringBuffer,不需要同步的话考虑StringBuilder,初始化时就固定长度10
String[]blanks={"","","","","","","","","",""};
Stringstr="abc";
StringBuildersb=newStringBuilder(10);
sb.append(str).append(blanks[10-str.length()]);
System.out.println(sb.toString());
sb.delete(0,10);//注意清空sb,可复用此对象
‘柒’ java字符串超长截取保留指定长度
可以通过java的”substring“方法截取出对应的字符串,前提是知道开始和结束的字符串的值:
string
getsigninfo
=
reqresult.substring(reqresult.indexof("(")
+
1,
reqresult.indexof(")"));
解释:上述方法就是截取reqresult字符串的中开始”(“和结束”)“中间部分的内容,”1“就是”)“的长度,之后将获取的结果赋值给”getsigninfo进行输出即可“;
备注:以上方法通用于截取字符串,数字”1“和开始结束字符串根据实际需要修改即可。
‘捌’ Java正则表达式截取固定长度的字符串
摘要 截取方法1:
‘玖’ 关于java如何定义一个长字符串的问题
java中字符串的类型是String,不需要先定义一个很长的字符串长度(这个就没有方法),之后再赋值,可以直接进行赋值即可。如 String str = “12312312312”;
备注:java中字符串的长度可以说是无上限的,只要java虚拟机内存足够,都是可以存储的。
‘拾’ Java当中如何将字符串转化成特定长度的字节流
java中将字符串转化成特定长度的字节数组,可以使用字符串的getBytes方法生成字节数组,实例如下:
字符串转换成字节数组
byte[]byBuffer=newbyte[200];
StringstrInput="abcdefg";
byBuffer=strInput.getBytes();
注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。