看结果1?
package com.swift; class ArrayString {
public static void main(String[] args) {
String str = "swift:30|sunny:28|Ben:32";
String str1[] = str.split("\\|");
for (int i = 0; i <= str1.length - 1; i++) {
String str2[] = str1[i].split("\\:"); System.out.println("名字是" + str2[0] + "-->" + "年龄是" + str2[1]);
System.out.println(); }
}
}
看结果2?
package com.swift; class StringEmail
{
public static void main(String[] args)
{
String email="tiankong_0000@sina.com.cn";
String email1="81257211@qq.com";
String email2="tiankong.sina.com";
String email3="81257211@sina";
String email4="qq.com@81257211";
String email5="@.";
System.out.println(operate(email));
System.out.println(operate(email1));
System.out.println(operate(email2));
System.out.println(operate(email3));
System.out.println(operate(email4));
System.out.println(operate(email5)); }
public static boolean operate(String str)
{
boolean flag=true;
if (str.indexOf("@")==-1)
{
flag=false;
}
if (str.indexOf(".")==-1)
{
flag=false;
}
if (str.indexOf(".")<=str.indexOf("@"))
{
flag=false;
}
return flag;
} }
看结果3?
package com.swift; class StringEquals
{
public static void main(String[] args)
{
String str="Hello";
String str1=new String("Hello");
if(str.equals(str1))
System.out.println("111111111");
else
System.out.println("00000000000");
}
}
看结果4?
package com.swift; public class StringResult {
String str = new String("good");
char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) {
StringResult sr = new StringResult();
sr.change(sr.str, sr.ch);
System.out.print(sr.str + "and");
System.out.print(sr.ch);
} public void change(String str, char ch[]) {
str = "test ok";
ch[0] = 'g';
}
}
看结果5?
package com.swift; class StringJudge
{
public static void main(String[] args)
{
String str1="Hello";
String str2=new String(" World");
System.out.println(str1+str2);
String a="ok";
String b="ok";
String c=new String ("ok");
if(a==b)
System.out.println("1");
else
System.out.println("0");
if(a==c)
System.out.println("1");
else
System.out.println("0");
if(b==c)
System.out.println("1");
else
System.out.println("0"); if(a.equals(b))
System.out.println("1");
else
System.out.println("0");
if(a.equals(c))
System.out.println("1");
else
System.out.println("0");
if(b.equals(c))
System.out.println("1");
else
System.out.println("0");
}
}
如何解释?
不同的是,第一条先在内存中创建了"ok"这个String,然后将reference赋给a,下一条语句String b = "ok";那么JVM将不再创建"ok",而是直接将第一个"ok"的reference赋给b,也就是说,a和b是使用同一块内存,而String c = new String("ok");那JVM将在内存中再创建一块区域放上“ok”这个字符串。
看结果6?
package com.swift;
public class Emp {
int x=10;
}
public class ParameterTest {
public static void main(String[] args) {
Emp d = new Emp();
d.x = 30;
fun(d);
System.out.println(d.x);
} public static void fun(Emp example) {
example.x = 100;
} }
看结果7?
package com.swift; public class ParameterTest {
public static void main(String[] args) {
String str="Hello";
fun(str);
System.out.println(str);
} public static void fun(String temp)
{
temp="World";
} }
看结果8?
class Emp
{
String x="swift";
}
class Chuandi
{
public static void main(String[] args)
{
Emp d=new Emp();
d.x="who";
fun(d);
System.out.println(d.x);
}
public static void fun(emp example)
{
example.x="is";
}
}