java数组与字符串编程及答案_04747_Java语言程序设计(一)_第4章_数组和字符串...
/* 面試題
* 1:String,StringBuffer,StringBuilder的區(qū)別?
*
* String是內(nèi)容不可變的,StringBuffer,StringBuilder都是內(nèi)容可變的
* StringBuffer是同步的,數(shù)據(jù)安全,效率低,StringBuilder是不同步的,數(shù)據(jù)不安全,效率高
*
* 2:StringBuffer和數(shù)組的區(qū)別?
*
* 二者都可以看成是一個(gè)容器,裝其他的數(shù)據(jù)
* 但是StringBuffer的數(shù)據(jù)最終是一個(gè)字符串?dāng)?shù)據(jù)
* 而數(shù)組可以放置多種數(shù)據(jù),但必須是同一種數(shù)據(jù)類型的
*
* 3:形式參數(shù)問題
* String作為參數(shù)傳遞
* StringBuffer作為參數(shù)傳遞
*
* 形式參數(shù):
* 基本類型:形式參數(shù)的改變不影響實(shí)際參數(shù)
* 引用類型:形式參數(shù)的改變直接影響實(shí)際參數(shù)
*
* 注意:
* String作為參數(shù)傳遞,效果和基本類型作為參數(shù)傳遞是一樣的
*/
/* 面試題
* 1:String,StringBuffer,StringBuilder的區(qū)別?
*
* String是內(nèi)容不可變的,StringBuffer,StringBuilder都是內(nèi)容可變的
* StringBuffer是同步的,數(shù)據(jù)安全,效率低,StringBuilder是不同步的,數(shù)據(jù)不安全,效率高
*
* 2:StringBuffer和數(shù)組的區(qū)別?
*
* 二者都可以看成是一個(gè)容器,裝其他的數(shù)據(jù)
* 但是StringBuffer的數(shù)據(jù)最終是一個(gè)字符串?dāng)?shù)據(jù)
* 而數(shù)組可以放置多種數(shù)據(jù),但必須是同一種數(shù)據(jù)類型的
*
* 3:形式參數(shù)問題
* String作為參數(shù)傳遞
* StringBuffer作為參數(shù)傳遞
*
* 形式參數(shù):
* 基本類型:形式參數(shù)的改變不影響實(shí)際參數(shù)
* 引用類型:形式參數(shù)的改變直接影響實(shí)際參數(shù)
*
* 注意:
* String作為參數(shù)傳遞,效果和基本類型作為參數(shù)傳遞是一樣的
*/
public class StringTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="hello";
String s2="world";
System.out.println(s1+"---"+s2);
change(s1,s2);
System.out.println(s1+"---"+s2);
StringBuffer sb1=new StringBuffer("hello");
StringBuffer sb2=new StringBuffer("world");
System.out.println(sb1+"---"+sb2);
change(sb1,sb2);
System.out.println(sb1+"---"+sb2);
}
private static void change(String s1, String s2) {
// TODO Auto-generated method stub
s1=s2;
s2=s1+s2;
}
private static void change(StringBuffer sb1, StringBuffer sb2) {
// TODO Auto-generated method stub
sb1=sb2;
sb2.append(sb1);
}
}
面試題
字符串連接
public class Aserver {
public static void main(String args[]) {
// 字符串?dāng)?shù)據(jù)和其他數(shù)據(jù)+,結(jié)果是字符串類型
// 運(yùn)算符重載+,字符串拼接
System.out.println("hello" + 'a' + 1);// helloa1
System.out.println('a' + 1 + "hello");// 98hello
System.out.println("5+5=" + 5 + 5);// 5+5=55
System.out.println(5 + 5 + "=5+5");// 10=5+5
}
}
模擬用戶登錄
import java.util.Scanner;
public class StringTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count = 3;
String username = "admin";
String password = "admin";
for (int i = 0; i < count; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入用戶名");
String name = sc.nextLine();
System.out.println("請輸入密碼");
String pwd = sc.nextLine();
if (name.equals(username) && pwd.equals(password)) {
System.out.println("登錄成功");
break;
} else {
if (i == 2) {
System.out.println("賬號(hào)被鎖定,請與管理員聯(lián)系。");
break;
}
System.out.println("登錄失敗,你還有" + (count - i - 1) + "次機(jī)會(huì)。");
}
}
}
}
例4.1小應(yīng)用程序先聲明一個(gè)數(shù)組a,在方法init()中創(chuàng)建它,指定有5個(gè)元素,然后為數(shù)組元素逐一賦值。在方法paint()中輸出數(shù)組各元素的值。
import java.applet.*;
import java.awt.*;
public class Example4_1 extends Applet {
int a[];// 標(biāo)識(shí)符ua能引用元素類型是int的數(shù)組
public void init() {
a = new int[5];// 創(chuàng)建一個(gè)含5個(gè)元素的數(shù)組,并讓a引用它
a[0] = 100;
a[1] = 101;
a[2] = 102;
a[3] = 103;
a[4] = 104;
}
public void paint(Graphics g) {
g.drawString("a[0]=" + a[0] + " a[1]=" + a[1] + " a[2]=" + a[2], 12, 12);
g.drawString("a[3]=" + a[3] + " a[4]=" + a[4], 12, 32);
}
}
例4.2設(shè)明數(shù)組是一種引用類型的應(yīng)用程序。
public class Example4_2 {
static public void main(String[] args) {
int firstArray[] = { 1, 2, 3, 4 };// 采用數(shù)組初始化創(chuàng)建數(shù)組
int secondArray[] = { 5, 6, 7, 8, 9, 10 };
int myArray[];// 聲明標(biāo)識(shí)符myArray可以引用數(shù)組
myArray = firstArray;// myArray與firstArray一樣,引用同一個(gè)數(shù)組
System.out.println("First Array:");
for (int index = 0; index < myArray.length; index++) {
System.out.println(myArray[index]);// 通過myArray對數(shù)組做操作
}
myArray = secondArray;// 讓myArray引用另一個(gè)數(shù)組
System.out.println("Second Array:");
for (int index = 0; index < myArray.length; index++) {
System.out.println(myArray[index]);// 通過myArray對數(shù)組做操作
}
}
}
例4.3一個(gè)含三角二維數(shù)組的應(yīng)用程序。
public class Example4_3 {
static public void main(String[] args) {
boolean bTbl[][] = new boolean[4][];// 僅說明第一維,有4個(gè)子數(shù)組
for (int i = 0; i < bTbl.length; i++)// 創(chuàng)建第二維
{
bTbl[i] = new boolean[i + 1];
}
for (int i = 0; i < bTbl.length; i++)// 在屏幕上打印數(shù)組內(nèi)容
{
for (int k = 0; k < bTbl[i].length; k++) {
System.out.print(bTbl[i][k] + " ");
}
System.out.println("");
}
}
}
例4.4一個(gè)說明字符串連接運(yùn)算和連接方法的應(yīng)用程序。
public class Example4_4 {
static public void main(String[] args) {
String s1 = "ABC";
String s2 = "DEFG";
System.out.println(s1 + s2);// 應(yīng)用字符串連接運(yùn)算
s1 = "ABC";
s2 = "XYZ";
s1 = s1.concat(s2);// 應(yīng)用字符串連接方法
System.out.println(s1);
}
}
例4.5一個(gè)說明字符串的字符替換和去掉字符串前后空格的應(yīng)用程序。
public class Example4_5 {
static public void main(String[] args) {
String s = "1234567788", str;
str = s.replace('7', 'A');
System.out.println("s=" + s + " str=" + str);
String s2 = " 123456 77 88 ", str2;
str2 = s2.trim();
System.out.println("s2=" + s2 + "| str2=" + str2 + "|");
}
}
例4.6利用StringTokenizer類分析字符串。
import java.util.*;
public class Example4_6 {
public static void main(String[] args) {
String s1 = "public static void, main";
String s2 = "StringTokenizer pas2? =new StringTokenizer";
StringTokenizer pas1 = new StringTokenizer(s1, " ,");// 空格逗號(hào)做分隔符
StringTokenizer pas2 = new StringTokenizer(s2, "? ");// 問號(hào)空格做分隔符
int n1 = pas1.countTokens(), n2 = pas2.countTokens();
System.out.println("s1有單詞:" + n1 + "個(gè),全部單詞如下:");
while (pas1.hasMoreTokens()) {
String s = pas1.nextToken();
System.out.println(s);
}
System.out.println("s2有單詞:" + n2 + "個(gè),全部單詞如下:");
while (pas2.hasMoreTokens()) {
String s = pas2.nextToken();
System.out.println(s);
}
}
}
例4.7一個(gè)說明字符串與字節(jié)數(shù)組的應(yīng)用程序。
import java.util.*;
public class Example4_7 {
public static void main(String[] args) {
byte b[] = new byte[10];
for (int k = 0; k < 10; k++) {
b[k] = (byte) (k + 48);// 數(shù)字符0的ASCII碼值是48
}
String s1 = new String(b);
String s2 = new String(b, 3, 6);
String s3 = new String("ABC");
String s4 = new String("Java程序");
byte c[] = s3.getBytes();
byte d[] = s4.getBytes();
System.out.println(s2);
System.out.println(s3);
System.out.println("數(shù)組c的長度是:" + c.length);
System.out.println("數(shù)組d的長度是(一個(gè)漢字占兩個(gè)字節(jié)):" + d.length);
System.out.println("用ASCII數(shù)值輸出數(shù)組c[]:");
for (int i = 0; i < c.length; i++) {
System.out.println("c" + "[" + i + "]:" + c[i]);
}
System.out.println("用ASCII數(shù)值對應(yīng)的字符輸出數(shù)組c[]:");
for (int i = 0; i < c.length; i++) {
System.out.println("c" + "[" + i + "]:" + (char) c[i]);
}
System.out.println("用ASCII數(shù)值輸出數(shù)組d[]:");
for (int i = 0; i < d.length; i++) {
System.out.println("d" + "[" + i + "]:" + d[i]);
}
}
}
例4.8程序獲取Date對象的小時(shí)、分和秒,獲得Date對象的字符串表示,并測試一個(gè)循環(huán)所消耗的時(shí)間。
import java.util.*;
public class Example4_8 {
public static void main(String[] args) {
Date date1 = new Date();
System.out.println("日期及時(shí)間是:" + date1);
String t = date1.toString();
t = t.substring(11, t.indexOf('C'));// 截取時(shí)、分、秒部分。
System.out.println("現(xiàn)在時(shí)間是:" + t);
double sum = 0.0;
for (double i = 0; i < 80000000; i++) {
sum = sum + i;
}
System.out.println("" + sum);
Date date2 = new Date();// 循環(huán)結(jié)束后的時(shí)間。
t = date2.toString();
t = t.substring(11, t.indexOf('C'));// 字符C之前為時(shí)分秒
System.out.println("現(xiàn)在時(shí)間是:" + t);
}
}
總結(jié)
以上是生活随笔為你收集整理的java数组与字符串编程及答案_04747_Java语言程序设计(一)_第4章_数组和字符串...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 判断页面刷新_如何判断一个网页
- 下一篇: jedis操作set_在Java中使用j