怎么 知道 java字符串 编码格式
这样的测试方法是不正确的。getBytes(charset)是解码,new String(byte[], charset)是编码。new String(str.getBytes(charset),charset)是解码再编码,无论charset是什么编码格式,返回的字符串内容原始str是一致,因此equals方法都是返回true,达不到测试字符串编码格式的目的。个人观点:正确的测试姿势应该是这样的:
String charset =”xxx”; //假定编码格式
String str = “中文”;
boolean flag = str.equals(new String(str.getBytes(),charset));
flag为true则表明str的编码格式是假定的编码格式。其中说明str.getBytes()该方法就是按其自身编码格式去解码。其自身编码格式跟你的操作系统编码格式或你使用的IDE设置的文件的Text file encoding有关。
Java的字符串都有什么?字符串可以转换为任意数值吗?
Java字符串类包括String、StringBuffer、StringBuilder。字符串之间是可以更改数值的。比如使用Parseint(S)方法,该方法是静态的,不会产生多余的以int形式返回的对象,并且在底层查看源代码时,如果输入的字符串内容不是int类型,如果它是空的,并且输入的内容超过int的极限,则会发现numberformatexception类型异常。
java字符串string的使用方法是什么?
String类别是一个不可更改的字符串,所以说string类实际上可以被认为是只读的一个字符串,但是即使如此,string类也提供了许多可用的方法,下面将详细介绍这些方法。例如string()、string、string(byte[ ])、string(char[ ])等。上面列出的一些普通string类构造函数以及其他string类构造函数,例如从数组的初始位置开始。
字符串StringBuilder有什么用处?
StringBuilder可以使用可变字符串操作,这将提高字符串性能。在StringBuilder类别中,也有一些类似的方法,如上面String类别中描述的indexof(char)。但是我们使用StringBuilder类,它主要用于在字符串中添加和删除字符。其次,StringBuilder类主要称为用于构建字符串的字符串,因为StringBuilder类用于提高性能,因为String类不会更改,实际上虚拟机在更改String类时在底层运行。
StringBuilder和StringBuffer有什么区别?
StringBuilder和StringBuffer的功能没有显著区别,除了消除非线程安全问题,有效地降低了成本以外,在大多数情况下是首选的字符串连接选项。StringBuffer提供了一个类来解决平铺顶部过多的中间对象的问题,我们可以使用Append或Add方法将字符串添加到现有序列的末尾或指定位置。
java如何把string转为utf-8
java不同编码之间进行转换,都需要使用unicode作为中转。
String str = “任意字符串”;
str = new String(str.getBytes(“gbk”),”utf-8″);
备注说明:
str.getBytes(“UTF-8”); 意思是以UTF-8的编码取得字节
new String(XXX,”UTF-8″); 意思是以UTF-8的编码生成字符串
举例:
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer();
sb.append(xml);
String xmString = “”;
String xmlUTF8=””;
try {
xmString = new String(sb.toString().getBytes(“UTF-8”));
xmlUTF8 = URLEncoder.encode(xmString, “UTF-8”);
System.out.println(“utf-8 编码:” + xmlUTF8) ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return to String Formed
return xmlUTF8;
扩展资料:
UTF-8编码规则:
如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。
实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。
Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。
参考资料来源:百度百科:UTF-8
java中String[][] 是什么东西?string[]又是什么东西?
String[][]是二维数组。例如:String[][] str=new String[4][4],这是创建了一个有4行4列元素的数组。
String[]代表一维数组。例如:String[] str=new String[4],这个创建一个有4个元素的数组。
String[]代表格式为String数组;如str[1] str[2]等。String[][]代表多维数组了.[][],可以理解为几行几列。
String是编程语言中的字符串,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。
扩展资料:
String的主要功能:
String 类提供的成员执行以下操作:比较 String 对象;返回 String 对象内字符或字符串的索引;复制 String 对象的值;分隔字符串或组合字符串;修改字符串的值;将数字、日期和时间或枚举值的格式设置为字符串;对字符串进行规范化。
使用 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
java 字符 string的 详细用法
我也是菜鸟,尽量把答案表达清楚,不足之处请赐教
string1=”aaa”;
string2=”aaa”;
String
string3
=
new
String(“aaa”);
String
string4
=
new
String(“aaa”);
而在这四条语句中,
string1==string2;//成立
string1.equals(string2);//返回true
而
string3==string4;//false
string3.equals(string4);//返回true
弄明白这四个结果,这个问题就解决了
首先string1=”aaa”;和string2=”aaa”;
都指向常量池的同一个对象aaa;
其调用==和X.
equals(Y)方法其效果是一样的
而String
string3
=
new
String(“aaa”);和
String
string4
=
new
String(“aaa”);是在heap堆中创建两个新对象,他们引用的地址是不同的,从而使得==出现不相等的情况,而X.
equals(Y)当x和Y所引用的对象是同一类对象且属性内容相等(并不一定是相同对象)时返回true,就出现了上面的结果。
java String 字符格式问题
String str = “123123asdasdsa”;
if(str.length() 10){
System.out.println(“长度不能超出10个字符…”);
}