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位元組。