java计算字符串
㈠ java中怎么计算输入字符串的长度
通过String自带的length()方法获取字符串长度。
String a="abcdefg";//定义一个字符串
int len = a.length();//通过length获取字符串长度,这里等于7
length()该方法返回此字符串的长度。长度是等于Unicode代码单元中的字符串的数目。
㈡ java 怎么 字符串进行运算 如:String str = "(((12 -2) * 5 ) /2) +30"; 最好要有代码。
如果你说的是用一个counter(String
str)的方法调用后得到str的计算结果话
2个数字加一个运算符,3个一组进行计算,得到一个数字,加另一个数字和运算符继续计算
需要注意string中连续的数字要整合成一个数字
加上括号的时候运算顺序要小心,特别注意括号前有计算数字,比如5+(2+5)
括号后面有乘除法运算,比如5+(2+5)/2
括号算完了要继续算后面的除法,之后用得到的数字加上前面的加号运算符和‘5’一起运算,算法思想就是这样了
要是有堆栈就建俩堆栈,一个运算符,一个数字
没括号的:数字压栈,符号压栈,数字压栈,判断下一个符号是否为乘除号,不是数字退栈,符号退栈,数字退栈,计算,得到结果,数字压栈,是乘除号,继续符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈
要是有括号:遇到括号后,正括号压栈,数字压栈,符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,得到结果……(与不加括号的情况一样)……直到遇到反括号,将正括号退栈,先看后面是否有乘除符号,若没有,看看符号栈是否为空,若不为空说明是括号前有运算的情况,将整个括号得到的数值当做数字压栈后按不带括号的处理,后面有乘除法,先乘除然后作为一个数字继续运算
用数组就建立2个数组,2个int型变量作为数组指针,一个存符号,一个存数字,方法与用堆栈相同
代码量一般,0分完全没有写代码的欲望啊,不过我的算法是正确的,望采纳
㈢ Java编程,求字符串的长度
- 首先打开my eclipse
新建一个java项目,名字随意起
名字起好后,点击完成
右键点击项目名称,新建,类
类的名字叫TextLength
包的名字叫 com.zf.s2,点击完成 - 判断是否是汉字
int chineseCount=0;
if(!"".equals("")){//判断是否为空
s=new String(s.getBytes(),"GBK"); //进行统一编码
}
for(int i=0;i<s.length();i++){//for循环
c=s.charAt(i); //获得字符串中的每个字符
if(isChineseChar(c)){//调用方法进行判断是否是汉字
chineseCount++; //等同于chineseCount=chineseCount+1
}
}
return chineseCount; //返回汉字个数
}
获得字母、数字、空格的个数
public static String getStringInfo(String s){
char ch;
int character=0,blank=0,number=0;
for(int i=0;i <s.length();i++) //for循环
{
ch=s.charAt(i);
if((ch>='a'&&ch <='z')||(ch>='A'&&ch <='Z'))//统计字母
character++; //等同于character=character+1
else if(ch==' ') //统计空格
blank++; //等同于blank=blank+1
else if(ch>='0'&& ch <='9') //统计数字
number++; //等同于number=number+1;
}
完整代码
package com.zf.s2;//创建一个包
public class TextLength {//描述字符串长度的类
public static boolean isChineseChar(char c) throws Exception{//判断是否是一个汉字
return String.valueOf(c).getBytes("GBK").length>1;//汉字的字节数大于1
}
public static int getChineseCount(String s) throws Exception{//获得汉字的长度
char c;
int chineseCount=0;
if(!"".equals("")){//判断是否为空
s=new String(s.getBytes(),"GBK"); //进行统一编码
}
for(int i=0;i<s.length();i++){//for循环
c=s.charAt(i); //获得字符串中的每个字符
if(isChineseChar(c)){//调用方法进行判断是否是汉字
chineseCount++; //等同于chineseCount=chineseCount+1
}
}
return chineseCount; //返回汉字个数
}
public static String getStringInfo(String s){//获得字母、数字、空格的个数
char ch;
int character=0,blank=0,number=0;
for(int i=0;i <s.length();i++) //for循环
{
ch=s.charAt(i);
if((ch>='a'&&ch <='z')||(ch>='A'&&ch <='Z'))//统计字母
character++; //等同于character=character+1
else if(ch==' ') //统计空格
blank++; //等同于blank=blank+1
else if(ch>='0'&& ch <='9') //统计数字
number++; //等同于number=number+1;
}
return "字符串中共有"+character+"个字母,"+blank+"个空格,"+number+"个数字";
}
public static void main(String []args) throws Exception {//java程序的主入口方法
String s="hello world 世界你好!!123*";
System.out.println("字符串的总长度:"+s.length());//显示字符串长度
System.out.println("字符串中汉字长度:"+getChineseCount(s)); //调用方法显示汉字长度
System.out.println(getStringInfo(s)); //调用方法显示其它字母类型的长度
}
}
㈣ java如何截取字符串中的数字并计算
void calcNetIncome(String str){
int num = 0;
String temp = "";
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)=='-'||(str.charAt(i)>='0'&&str.charAt(i)<='9')){
while(i < str.length()){
temp+=str.charAt(i);
if(i+1 < str.length()&&(!(str.charAt(i+1)>='0'&&str.charAt(i+1)<='9'))){
break;
}
i++;
}
num+=Integer.parseInt(temp);
temp = "";
}
}
System.out.println(num);
}
㈤ java计算出字符串中所有的数字求和
//如果仅仅识别整数的话,可以用这个x0dx0ax0dx0apublic class T {x0dx0a public static void main(String[] args) {x0dx0a String value = "我们都是2007年3月28日参加课题设计的,对于我们来说也是第1次挑战,但结果是好的,我们做到了100%满意。";x0dx0a System.out.println(sum(value));x0dx0a }x0dx0ax0dx0a public static int sum(String value) {x0dx0a String strings[] = value.split("\\D+");x0dx0a int sum = 0;x0dx0a for (String s : strings) {x0dx0a if (!s.equals("")) {x0dx0a sum += Integer.parseInt(s);x0dx0a }x0dx0a }x0dx0a return sum;x0dx0a }x0dx0a}
㈥ (java)如何获取字符串的字节数!
(java)如何获取字符串的字节数!, java怎样获取字符串的字节数
字符串是可以转变成字节数组,然后统计一下字节数组的长度即可,参考如下代码:
Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节。
public static void main(String []args) throws UnsupportedEncodingException {
运行结果:2
System.out.println("测试".getBytes("ISO8859-1").length);
运行结果:4
System.out.println("测试".getBytes("GB2312").length);
运行结果:4
System.out.println("测试".getBytes("GBK").length);
运行结果:6
System.out.println("测试".getBytes("UTF-8").length);
}
c# 获取字符串的字节数
C#截取字符串字节数 代码如下:
public int bytelenght(string str)
{
byte[] bytestr = System.Text.Encoding.Unicode.GetBytes(str);
int j = 0;
for (int i = 0; i < bytestr.GetLength(0); i++)
{
if (i % 2 == 0)
{
j++;
}
else
{
if (bytestr[i] > 0)
{
j++;
}
}
}
return j;
}
谢谢采纳
c++ 怎样获取一串字符串的字符数,不是字节数
定义一个字符数组,然后根据字符长度循环得到字符
比如char ch[20];
这个20可以用字符实际长度getlength()获取
然后再循环获取字符
ch[i]
c#求字符串的字节数
其实用不着那么复杂计算的。注意:C#中string.Length只是计算字符串“字符”的个数,不计算字节;但是汉字两个字节+数字(英文字符)一个字节,才是6个,简单的代码如下: byte[] bytes = Encoding.Default.GetBytes("1243我"); Default(根据自己究竟是汉字还是数字等,自动合理分配内存所需要的字节空间)
Console.WriteLine(bytes.Length);
C#如何获得存放字符串的字节数组?
byte[] System.Text.Encoding.Default.GetBytes(string s)
如何计算一个Unicode字符串的字节数
你就是一个byte一个byte读取的吧?一个汉字两个byte(不含surrogate情况),文件中存两个byte,你从文件中读取2个byte,就是这样 查看原帖>>
java下字符串和字节数组如何转换?
strRead = String.ValueOf(strRead.toCharArray(), 0, byBuffer.length]); 2、字符串转换成字节数组 byte[] byBuffer = new byte[200]; byBuffer= strInput.getBytes();注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。