×

string str

string(string 是什么类型的)

admin admin 发表于2022-09-06 15:59:41 浏览112 评论0

抢沙发发表评论

本文目录

string 是什么类型的


string属于Java中的字符串类型,也是一个引用类型,并不属于基本的数据类型。

Java中基本的数据类型只有八个,分别是数值型:byte、short、int、long;浮点型:float、double;字符型:char;布尔型:boolean。

Java有字符串常量池机制,在声明字符串常量和字符串常量连接都需要使用到字符串常量池,如果字符串序列存在于该常量池中则返回,所以str会创建了一个字符串放入常量池中,str2将直接指向str指向的对象。-string

扩展资料:

String是一个固定长度的字符串,对String进行操作,是创建新的对象(String的操作都是改变赋值地址而不是改变值操作)。

而和它相似的还有一个字符串StringBuffer,对StringBuffer进行操作,这是在原来的对象之上进行改变(StringBuffer的操作都是改变值操作)。

String是一种不高效的字符串使用方式,在要求执行效率的系统当中会更多的使用StringBuffer来代替,这样可以降低系统的繁复性。

参考资料:百度百科——Java


java中String[][] 是什么东西string[]又是什么东西


String是二维数组。例如:String str=new String,这是创建了一个有4行4列元素的数组。

String代表一维数组。例如:String str=new String,这个创建一个有4个元素的数组。

String代表格式为String数组;如str str等。String代表多维数组了.,可以理解为几行几列。

String是编程语言中的字符串,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 

扩展资料:

String的主要功能:

String 类提供的成员执行以下操作:比较 String 对象;返回 String 对象内字符或字符串的索引;复制 String 对象的值;分隔字符串或组合字符串;修改字符串的值;将数字、日期和时间或枚举值的格式设置为字符串;对字符串进行规范化。-str

使用 Compare、CompareOrdinal、CompareTo、Equals、EndsWith 和 StartsWith 方法进行比较。

使用 IndexOf、IndexOfAny、LastIndexOf 和 LastIndexOfAny 方法可获取字符串中子字符串或 Unicode 字符的索引。

使用 Copy 和 CopyTo 可将字符串或子字符串复制到另一个字符串或 Char 类型的数组。

使用 Substring 和 Split 方法可通过原始字符串的组成部分创建一个或多个新字符串;使用 Concat 和 Join 方法可通过一个或多个子字符串创建新字符串。

使用 Insert、Replace、Remove、PadLeft、PadRight、Trim、TrimEnd 和 TrimStart 可修改字符串的全部或部分。

使用 ToLower、ToLowerInvariant、ToUpper 和 ToUpperInvariant 方法可更改字符串中 Unicode 字符的大小写。

使用 Length 属性可获取字符串中 Char 对象的数量;使用 Chars 属性可访问字符串中实际的 Char 对象。

使用 IsNormalized 方法可测试某个字符串是否已规范化为特定的范式。使用 Normalize 方法可创建规范化为特定范式的字符串。

参考资料:百度百科-string


C/C++ 中cstring用法


CString的构造函数
CString( );
例:CString csStr;
CString( const CString& stringSrc );
例:CString csStr(“ABCDEF中文123456“);
CString csStr2(csStr);
CString( TCHAR ch, int nRepeat = 1 );
例:CString csStr(’a’,5);
//csStr=“aaaaa“
CString( LPCTSTR lpch, int nLength );
例:CString csStr(“abcdef“,3);
//csStr=“abc“
CString( LPCWSTR lpsz );
例:wchar_t s=L“abcdef“;
CString csStr(s);
//csStr=L“abcdef“
CString( const unsigned char* psz );
例:const unsigned char s=“abcdef“;
const unsigned char* sp=s;
CString csStr(sp);
//csStr=“abcdef“
CString( LPCSTR lpsz );
例:CString csStr(“abcdef“);
//csStr=“abcdef“
int GetLength( ) const;
返回字符串的长度,不包含结尾的空字符。
例:csStr=“ABCDEF中文123456“;
printf(“%d“,csStr.GetLength()); //16
void MakeReverse( );
颠倒字符串的顺序
例:csStr=“ABCDEF中文123456“;
csStr.MakeReverse();
cout《《csStr; //654321文中FEDCBA
void MakeUpper( );
将小写字母转换为大写字母
例:csStr=“abcdef中文123456“;
csStr.MakeUpper();
cout《《csStr; //ABCDEF中文123456
void MakeLower( );
将大写字母转换为小写字母
例:csStr=“ABCDEF中文123456“;
csStr.MakeLower();
cout《《csStr; //abcdef中文123456
int Compare( LPCTSTR lpsz ) const;
区分大小写比较两个字符串,相等时返回0,大于时返回1,小于时返回-1
例:csStr=“abcdef中文123456“;
csStr2=“ABCDEF中文123456“;
cout《《csStr.CompareNoCase(csStr2); //0
int CompareNoCase( LPCTSTR lpsz ) const;
不区分大小写比较两个字符串,相等时返回0,大于时返回1,小于时返回-1
例:csStr=“abcdef中文123456“;
csStr2=“ABCDEF中文123456“;
cout《《csStr.CompareNoCase(csStr2); //-1
int Delete( int nIndex, int nCount = 1 )
删除字符,删除从下标nIndex开始的nCount个字符
例:csStr=“ABCDEF“;
csStr.Delete(2,3);
cout《《csStr; // ABF
//当nIndex过大,超出对像所在内存区域时,函数没有任何操作。
//当nIndex为负数时,从第一个字符开始删除。
//当nCount过大,导致删除字符超出对像所在内存区域时,会发生无法预料的结果。
//当nCount为负数时,函数没有任何操作。
int Insert( int nIndex, TCHAR ch )
int Insert( int nIndex, LPCTSTR pstr )
在下标为nIndex的位置,插入字符或字符串。返回插入后对象的长度
例:csStr=“abc“;
csStr.Insert(2,’x’);
cout《《csStr; //abxc
csStr=“abc“;
csStr.Insert(2,“xyz“);
cout《《csStr; //abxyzc
//当nIndex为负数时,插入在对象开头
//当nIndex超出对象末尾时,插入在对象末尾
int Remove( TCHAR ch );
移除对象内的指定字符。返回移除的数目
例:csStr=“aabbaacc“;
csStr.Remove(’a’);
cout《《csStr; //bbcc
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
替换字串
例:csStr=“abcdef“;
csStr.Replace(’a’,’x’);
cout《《csStr; //xbcdef
csStr=“abcdef“;
csStr.Replace(“abc“,“xyz“);
cout《《csStr; //xyzdef
void TrimLeft( );
void TrimLeft( TCHAR chTarget );
void TrimLeft( LPCTSTR lpszTargets );
从左删除字符,被删的字符与chTarget或lpszTargets匹配,一直删到第一个不匹配的字符为止
例:csStr=“aaabaacdef“;
csStr.TrimLeft(’a’);
cout《《csStr; //baacdef
csStr=“aaabaacdef“;
csStr.TrimLeft(“ab“);
cout《《csStr; //cdef
//无参数时删除空格
void TrimRight( );
void TrimRight( TCHAR chTarget );
void TrimRight( LPCTSTR lpszTargets );
从右删除字符,被删的字符与chTarget或lpszTargets匹配,一直删到第一个不匹配的字符为止
例:csStr=“abcdeaafaaa“;
csStr.TrimRight(’a’);
cout《《csStr; //abcdeaaf
csStr=“abcdeaafaaa“;
csStr.TrimRight(“fa“);
cout《《csStr; //abcde
//无参数时删除空格
void Empty( );
清空
例:csStr=“abcdef“;
csStr.Empty();
printf(“%d“,csStr.GetLength()); //0
BOOL IsEmpty( ) const;
测试对象是否为空,为空时返回零,不为空时返回非零
例:csStr=“abc“;
cout《《csStr.IsEmpty(); //0;
csStr.Empty();
cout《《csStr.IsEmpty(); //1;
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;
查找字串,nStart为开始查找的位置。未找到匹配时返回-1,否则返回字串的开始位置
int FindOneOf( LPCTSTR lpszCharSet ) const;
查找lpszCharSet中任意一个字符在CString对象中的匹配位置。未找到时返回-1,否则返回字串的开始位置
CString SpanExcluding( LPCTSTR lpszCharSet ) const;
返回对象中与lpszCharSet中任意匹配的第一个字符之前的子串
CString SpanIncluding( LPCTSTR lpszCharSet ) const;
从对象中查找与lpszCharSe中任意字符不匹配的字符,并返回第一个不匹配字符之前的字串
int ReverseFind( TCHAR ch ) const;
从后向前查找第一个匹配,找到时返回下标。没找到时返回-1
void Format( LPCTSTR lpszFormat, ... );
void Format( UINT nFormatID, ... );
格式化对象,与C语言的sprintf函数用法相同
TCHAR GetAt( int nIndex ) const;
返回下标为nIndex的字符,与字符串的用法相同
//当nIndex为负数或超出对象末尾时,会发生无法预料的结果。
void SetAt( int nIndex, TCHAR ch );
给下标为nIndex的字符重新赋值
CString Left( int nCount ) const;
从左取字串
CString Right( int nCount ) const;
从右取字串
CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
从中间开始取字串
LPTSTR GetBuffer( int nMinBufLength );
申请新的空间,并返回指针
void ReleaseBuffer( int nNewLength = -1 );
使用GetBuffer后,必须使用ReleaseBuffer以更新对象内部数据
LPTSTR GetBufferSetLength( int nNewLength );
申请新的空间,并返回指针
1.CString::IsEmpty
BOOL IsEmpty( ) const;
返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。
说明:此成员函数用来测试一个CString 对象是否是空的。
2.CString::Left
CString Left( int nCount ) const;
throw( CMemoryException );
返回值:返回的字符串是前nCount个字符。
返回值:如果加载资源成功则返回非零值;否则返回0。
nID 一个Windows 字符串资源ID。
说明: 此成员函数用来读取一个由nID 标识的Windows 字符串资源,并放入一个已有CString 对象中。
4.CString::MakeLower
void MakeLower( ); //改变字符的小写
5.CString::MakeReverse
void MakeReverse( ); //字符倒置
6.CString::MakeUpper
void MakeUpper( ); //改变字符的大写
7.CString::Mid
CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
nCount代表要提取的字符数, nFirst代表要提取的开始索引位置
8.CString::ReleaseBuffer
void ReleaseBuffer( int nNewLength = -1 );
参数:nNewLength
此字符串的以字符数表示的新长度,不计算结尾的空字符。如果这个字
符串是以空字符结尾的,则参数的缺省值-1 将把CString 的大小设置为
字符串的当前长度。
说明:
使用ReleaseBuffer 来结束对由GetBuffer 分配的缓冲区的使用。如果你知道缓
冲区中的字符串是以空字符结尾的,则可以省略nNewLength 参数。如果字符
串不是以空字符结尾的,则可以使用nNewLength 指定字符串的长度。在调用
ReleaseBuffer 或其它CString 操作之后,由GetBuffer 返回的地址是无效的。
9.CString::Remove
int CString::Remove ( TCHAR ch );
返回值:返回从字符串中移走的字符数。如果字符串没有改变则返回零。
参数:ch 要从一个字符串中移走的字符。
说明:此成员函数用来将ch 实例从字符串中移走。与这个字符的比较是区分大小写
的。
10.CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数:chOld 要被chNew 替换的字符。
chNew 要用来替换chOld 的字符。
lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew 替换的字符。
LpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld 的字符。
说明:此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew
现场替换chOld。函数的第二个原形用lpszNew 指定的字符串替换lpszOld 指定
的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew 和lpszOld 的长度
不需要是相等的。两种版本形式都进行区分大小写的匹配。
11.CString::ReverseFind
int ReverseFind( TCHAR ch ) const;
返回值: 返回此CString 对象中与要求的字符匹配的最后一个字符的索引;如果没有找
到需要的字符则返回-1。
参数: ch 要搜索的字符。
说明:此成员函数在此CString 对象中搜索与一个子串匹配的最后一个字符。此函数
类似于运行时函数strrchr。
12.CString::Right
CString Right( int nCount ) const;
throw( CMemoryException );
返回值: 返回的字符串是最后nCount个字符。
CString s( _T(“abcdef“) );
ASSERT( s.Right(2) == _T(“ef“) );
13.CString:: SetAt
void SetAt( int nIndex, TCHAR ch );
说明:可以把字符串理解为一个数组,SetAt类似于.注意nIndex的范围,如果不合适会有调试错误。 Ch 更替字符, 把nIndex位置上的字符 变成ch
14.CString::TrimLeft
void TrimLeft( );
void CString::TrimLeft( TCHAR chTarget );
说明:如果没有参数,从左删除字符(\n\t空格等),至到遇到一个非此类字符. 当然你也可以指定删除那些字符. 如果指定的参数是字符串,那么遇上其中的一个字符就删除.
\n 换行符
\t TAB字符
15.CString::TrimRight
void TrimRight( );
void CString::TrimRight( TCHAR chTarget );
void CString::TrimRight( LPCTSTR lpszTargets );
说明:用法类似于上面。
16.CString::Compare
int Compare( LPCTSTR lpsz ) const;
返回值:字符串一样返回0,小于lpsz 返回-1,大于lpsz 返回1, 区分大小字符
17.CString::Collate
int Collate( LPCTSTR lpsz ) const;
同CString::Compare
18.CString::CollateNoCase
int CollateNocase( LPCTSTR lpsz ) const;
同CString::CompareNoCase
19.CString::CString //构造函数
CString( );
CString( const CString& stringSrc );
CString( TCHAR ch, int nRepeat = 1 );
CString( LPCTSTR lpch, int nLength );
CString( const unsigned char* psz );
CString( LPCWSTR lpsz );
CString( LPCSTR lpsz );
20.CString::Delete
int Delete( int nIndex, int nCount = 1);
返回值:是被删除前的字符串的长度
nIndex是第一个被删除的字符,nCount是一次删除几个字符。根据我实验得出的结果:当nCount》要删除字符串的最大长度(GetCount() - nIndex)时会出错,当nCount过大,没有足够的字符删除时,此函数不执行。
21.CString::Empty
Void Empty( );
返回值:没有返回值 清空操作;
22.CString::Find
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR lpszSub, int nStart ) const;
返回值: 不匹配的话返回 -1; 索引以0 开始; nStar 代表以索引值nStart 的字符开始搜索 ,
即为包含以索引nStart字符后的字符串.
23.CString::FindOneOf
int FindOneOf( LPCTSTR lpszCharSet ) const;
返回值: 不匹配的话返回 -1; 索引以0 开始
注意::返回此字符串中第一个在lpszCharSet中也包括字符并且从零开始的索引值
24.CString::Format
void Format( LPCTSTR lpszFormat, ... );
void Format( UINT nFormatID, ... );
参数:lpszFormat 一个格式控制字符串
nFormatID 字符串标识符
25.CString::GetAt
TCHAR GetAt( int nIndex ) const;
返回值:返回标号为nIndex的字符,你可以把字符串理解为一个数组,GetAt类似于.注意nIndex的范围,如果不合适会有调试错误。
26.CString::GetBuffer
LPTSTR GetBuffer( int nMinBufLength );
返回值:一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR 指针。
参数:nMinBufLength
字符缓冲区的以字符数表示的最小容量。这个值不包括一个结尾的空字符的空间。
说明:此成员函数返回一个指向CString 对象的内部字符缓冲区的指针。返回的LPTSTR 不是const,因此可以允许直接修改CString 的内容。如果你使用由GetBuffer 返回的指针来改变字符串的内容,你必须在使用其它的CString 成员函数之前调用ReleaseBuffer 函数。
在调用ReleaseBuffer 之后,由GetBuffer 返回的地址也许就无效了,因为其它的CString 操作可能会导致CString 缓冲区被重新分配。如果你没有改变此CString 的长度,则缓冲区不会被重新分配。当此CString 对象被销毁时,其缓冲区内存将被自动释放。
注意:如果你自己知道字符串的长度,则你不应该添加结尾的空字符。但是,当你用ReleaseBuffer 来释放该缓冲区时,你必须指定最后的字符串长度。如果你添加了结尾的空字符,你应该给ReleaseBuffer 的长度参数传递-1 ,ReleaseBuffer 将对该缓冲区执行strlen 来确定它的长度。
27.CString::GetLength
int GetLength( ) const;
返回值:返回字符串中的字节计数。
说明:此成员函数用来获取这个CString 对象中的字节计数。这个计数不包括结尾的空字符。
对于多字节字符集(MBCS),GetLength 按每一个8 位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。
28.CString::Insert
int Insert( int nIndex, TCHAR ch );
int Insert( int nIndex, LPCTSTR pstr );
返回值:返回修改后的长度,nIndex是字符(或字符串)插入后的索引号例子
-string

java.lang.String.String(byte[] data)这里的data是什么


这里是byte是参数类型,是字节数组,而data没有什么特别的意义,只是字节数组类型的变量名。至于你说看见有人写“GB2312“,GB2312是字符编码,这个是另一个构造方法了。

这些细节上的东西参照附件中的API,许多比较细节的东西还是需要你自己看仔细点。


java.lang.string是否可以再有子类


可以,但是即使你写了这个类,也没有用。

这个问题涉及到加载器的委托机制,在类加载器的结构图中,BootStrap是顶层父类ExtClassLoader是BootStrap类的子类,ExtClassLoader又是AppClassLoader的父类这里以java.lang.String为例,当我是使用到这个类时,Java虚拟机会将java.lang.String类的字节码加载到内存中。-str

下面来说说为什么只加载系统通过的java.lang.String类而不加载用户自定义的java.lang.String类呢?
①因加载某个类时,优先使用父类加载器加载需要使用的类。如果我们自定义了java.lang.String这个类,加载该自定义的String类,该自定义String类使用的加载器是AppClassLoader,根据优先使用父类加载器原理,AppClassLoader加载器的父类为ExtClassLoader。-string

②所以这时加载String使用的类加载器是ExtClassLoader,但是类加载器ExtClassLoader在jre/lib/ext目录下没有找到String.class类。然后使用ExtClassLoader父类的加载器BootStrap,父类加载器BootStrap在JRE/lib目录的rt.jar找到了String.class,将其加载到内存中。这就是类加载器的委托机制。-str

所以,用户自定义的java.lang.String不被加载,也就是不会被使用。


java.lang.String的常用的方法


public boolean equals(Object obj)
判断当前字符串与obj的内容是否相同
public boolean equalsIgnoreCase(String str)
判断当前字符串与str的内容是否相同,这个方法不会区分大小写字母的区别
public int length()
返回字符串的长度,即字符的总个数
public String trim()
去掉字符串两端的空白,包括“空格,\t,\n,\r等控制符”
public String substring(int start,int end)
根据开始和结束的位置,返回当前String的子字符串
public String substring(int start)
从开始位置开始到字符串结束,返回子字符串
public char charAt(int index)
返回指定位置的字符
public int indexOf(String str)
返回子字符串在当前字符串的位置,如果当前字符串不包含子字符串就返回-1
public String concat(String str)
返回一个字符串,内容是当前字符串与str连接而成的。
字符串连接可以简化写为String str = str1 + str2;结果与concat方法相同
public boolean startsWith(String str)
判断当前字符串,是否以str开头
public boolean endsWith(String str)
判断当前字符串,是否以str结尾
========================================================
String str = I am + Lingo!;
这样可以获得一个内容为I am Lingo!的字符串,在java里可以通过这种简单的方式实现字符串的连接
。这里需要注意的是,这个过程实际上生成了三个String对象,I am 和Lingo!先被生成,然后用他
们再创建一个String对象str,str的内容是两者的总和。所以,使用+进行字符串连接的时候会很耗费资
源,这个时候就需要使用另一个类StringBuffer,它的内容是可以修改的,实际上jvm内部编译之后,“
用+进行字符串连接”也是用StringBuffer实现的。
String str = I am + Lingo!;
String str = new StringBuffer(I am ).append(Lingo!).toString();
上边两个是等价的。
StringBuffer类还提供了许多便利的方法,对字符串进行操作
public void reverse()
反转字符串
public void append(...)
在字符串最后添加信息
public void insert(int start,...)
在索引位置插入信息
public void delete(int start,int end)
删除指定范围的内容
split与replaceAll方法
public String split(String regex)
根据分隔符,把字符串切割成字符串数组
public String replace(String regex,String str)
把字符串中所有与regex匹配的部分都替换成str
regex代表“正则表达式”,如果你并不清楚它的原理,很可能会出现问题。
1,3,4.split(,)返回的结果是{1,3,4}这三个字符串组成的数组
1|3|4.split(|)返回的结果却是{1,|,3,|,4}五个字符串组成的数组
这个问题的原因是由于在“正则表达式”中,“|”是一个有特殊含义的字符,表示“或”,直接使用
split(|)就会把每个字符分开了。如果希望使用|作为分隔符,就需要使用转义字符。
1|3|4.split(\\|)返回的结果就是{1,3,4}三个字符串组成的数组了
“\|”是正则表达式中代表|的专一字符,但因为在String中“\”不能单独出现,还需要进行一次转义
,就变成了“\\|”这种形式。
replaceAll(String regex,String str)也是这种情况-string


登陆手机银行出现java.lang.string什么意思


是后台变量的类型出错了...拿到的数据不是string类型,系统没办法放到string类型的变量中...所以会抛出这个异常,意思一般就是变量类型为java.lang.String类型,XXX变量不能赋给String类型变量
-str

java.lang.String 怎么转换成int类型,或者其他整数类型菜鸟求


String str =“6000.00“;
//str.indexOf(“.“)获取第一个点的位置,然后截取点以前的字符串,然后用 int 的封装类转换就行了
int a = Integer.parseInt(str.substring(0,str.indexOf(“.“)));
System.out.println(“a--》“ + a);
a--》6000
-string

java.lang.String 如何实现的运算符重载以加号为例说明


JAVA本来就是不支持运算符重载的。
JAVA在内存中每个不同String都是一个实例化的对象。
当 String + String的时候,在内存中会先建立一个StringBuilder对象
然后再进行append,再把相加之后的对象引用传给结果。
-str

java.lang.string怎么转变string


list里存的是什么类型的对象?
你想做什么?
如果是string类型的对象
如果你只是想把list里取出的string
类型的值赋给变量的话
string
oper_code
=((string)(p_operlist.get(0))).tostring();
这样就可以了!
你试一下吧。
建议你不要那么写,太乱了
很容易转化错误的
还不容易看出来
貌似你那样括号来括号去
结果是把string的转换成arraylist类型的
所以出错了!
-string