string字元串多少合適
Ⅰ string字元串長度限制
Java中的String有沒有長度限制?
這個問題要分兩個階段看,分別是編譯期和運行期。(ujiuye)不同的時期限制不一樣:
1、編譯期
String s = "";中,最多可以有65534個字元。如果超過這個個數。就會在編譯期報錯。
2、運行期
String長度的限制是編譯期的限制,也就是使用String s= "";這種字面值方式定義的時候才會有的限制。那麼。String在運行期有沒有限制呢,答案是有的,就是我們前文提到的那個Integer.MAX_VALUE ,這個值約等於4G,在運行期,如果String的長度超過這個范圍,就可能會拋出異常。(在jdk 1.9之前)String長度的限制是編譯期的限制,也就是使用String s= "";這種字面值方式定義的時候才會有的限制。
字元串不能超過2G個字元
Ⅱ Java中String接受的最大字元串的長度是多少
數組最大的長度為Integer.MAX_VALUE
1.不過,我們在編寫源代碼的時候,如果使用
Sting
str
=
"aaaa";的形式定義一個字元串,那麼雙引號裡面的ASCII字元最多隻能有
65534
個。
2.因為在class文件的規范中,
CONSTANT_Utf8_info表中使用一個16位的無符號整數來記錄字元串的長度的,最多能表示
65536個位元組,而java
class
文件是使用一種變體UTF-8格式來存放字元的,null值使用兩個位元組來表示,因此只剩下
65536-
2
=
65534個位元組。
3.也正是變體UTF-8的原因,如果字元串中含有中文等非ASCII字元,那麼雙引號中字元的數量會更少(一個中文字元佔用三個位元組)。如果超出這個數量,在編譯的時候編譯器會報錯。
Ⅲ 一個string字元串佔多少內存空間
java中可以用.getBytes().length獲取字元串佔用內容的大小,原理是java中任何字元都採用Unicode編碼,所以衡量佔用內存大小採用佔用的位元組數。
舉例如下:
public class TestStringSize {
public static final void main(String[] args) {
System.out.println("佔用內存大小:"+"學java".getBytes().length);
}
}
輸出結果:
佔用內存大小:6 byte
Ⅳ 如何判斷string字元串的長度
string字元串的長度可以用string中的成員函數length()或者size()來判斷。兩者功能相同,返回值都是字元串長度。
編寫下列程序為例,通過length函數和size函數得到字元串「Test string」的長度,運行結果如下:
(4)string字元串多少合適擴展閱讀:
C++ 中的 string 類的用法:
1、string類的構造函數:
string(const char *s); //用c字元串s初始化string(int n,char c); //用n個字元c初始化
此外,string類還支持默認構造函數和復制構造函數,如string s1;string s2="hello";都是正確的寫法。當構造的string太長而無法表達時會拋出length_error異常 。
2、string類的字元操作:
const char &operator[](int n)const;const char &at(int n)const;char &operator[](int n);char &at(int n);
operator[]和at()均返回當前字元串中第n個字元的位置,但at函數提供范圍檢查,當越界時會拋出out_of_range異常,下標運算符[]不提供檢查訪問。
const char *data()const;//返回一個非null終止的c字元數組const char *c_str()const;//返回一個以null終止的c字元串
int (char *s, int n, int pos = 0) const;//把當前串中以pos開始的n個字元拷貝到以s為起始位置的字元數組中,返回實際拷貝的數目
Ⅳ delphi中string的長度到底是多少
字元串是代表一組字元的變數類型,每一種語言都有自己的字元串類型的存儲和使用方法。
Pascal類型有下列幾種不同的字元串類型來滿足程序的要求:
AnsiString這是Pascal預設的字元串類型,它由AnsiChar字元組成,其長度沒有限制,同時與null結束的字元串相兼容。
ShortString保留該類型是為了向後兼容Delphi1.0,它的長度限制在255個字元內。
WideString功能上類似於AnsiString,但它是由WideChar字元組成的。
預設情況下,如果用如下的代碼來定義字元串,編譯器認為是AnsiString字元串:
AnsiString類型
AnsiString(或長字元串)類型是在Delphi2.0開始引入的,因為Delphi1.0的用戶特別需要一個容易使用而且沒有255個字元限制的字元串類型,而AnsiString正好能滿足這些要求。
雖然AnsiString在外表上跟以前的字元串類型幾乎相同,但它是動態分配的並有自動回收功能,正是因為這個功能AnsiString有時被稱為生存期自管理類型。ObjectPascal能根據需要為字元串分配空
間,所以不用像在C/C++中所擔心的為中間結果分配緩沖區。另外,AnsiString字元串總是以null字元結束的,這使得AnsiString字元串能與Win32API中的字元串兼容。實際上,AnsiString類型是
一個指向在堆棧中的字元串結構的指針。
WideString類型
WideString類型像AnsiString一樣是生存期自管理類型,它們都能動態分配、自動回收並且彼此能相互兼容,不過WideString和AnsiString的不同主要在三個方面:
WideString由WideChar字元組成,而不是由AnsiChar字元組成的,它們跟Unicode字元串兼容。
WideString用SysAllocStrLen()API函數進行分配,它們跟OLE的BSTR字元串相兼容。
WideString沒有引用計數,所以將一個WideString字元串賦值給另一個WideString字元串時,就需要從內存中的一個位置復制到另一個位置。這使得WideString在速度和內存的利用上不如AnsiString有
效。
---------------------------------------
在Delphi中字元串類型為String,有ShortString,AnsiString,WideString三種
預設的編譯選項下,編譯器認為String就是AnsiString字元串(可以使用$H編譯開關來進行修改)。
AnsiString類型的變數實際上是一個指針。
其實,ansistring的長度以不超過4G為限。
Ⅵ Java中String字元串的存儲大小也就是容量是多少呢能存多少字元。
String str="abc...";這樣定義的字元串是存在字元串池中的
String str=new String("abc...")這樣定義的字元串是在堆內存中的,然後被棧內存的對象str引用
所以字元串是對象,是在內存中存儲的,不像基本數據類型有各自的長度,字元串應該是只要是內存不滿,是沒有長度限制的
Ⅶ string字元串長度為多少位
最多65536長度。因為String裡面實際上是一個char[],數組最大的長度為Integer.MAX_VALUE,
也就是65536
Ⅷ String的最大允許長度是多少
String內部使用一個char[]數組來存放字元串的內容,數組下標是整型(也可以參考String的構造方法String(char value[], int offset, int count) ,可以知道字元數量是用整型表示),整型(Java規定32位)表示範圍是2G,也就是說,Java數組最大的長度是2G,即字元串不能超過2G個字元。
Ⅸ C++中string類字元串所能容納字元數的上限是多少
C++中的strig是一個vector,容量是沒有限制的。可以看一下《Thinking In C++ Volume 2: Practical Programming》第3章Strings in depth。或者看一下string的定義,其實就是一個別名:
typedef basic_string<char, char_traits<char>, allocator<char> > string;
Ⅹ Java中String接受的最大字元串的長度是多少
數組最大的長度為Integer.MAX_VALUE