本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
5分14秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 示例 1 : 是否是同一个对象 示例 2 : 是否是同一个对象-特例 示例 3 : 内容是否相同 示例 4 : 是否以子字符串开始或者结束 示例 5 : 练习-比较字符串 示例 6 : 答案-比较字符串
str1和str2的内容一定是一样的!
但是,并不是同一个字符串对象 package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light";
String str2 = new String(str1);
//==用于判断是否是同一个字符串对象
System.out.println( str1 == str2);
}
}
package character; public class TestString { public static void main(String[] args) { String str1 = "the light"; String str2 = new String(str1); //==用于判断是否是同一个字符串对象 System.out.println( str1 == str2); } } str1 = "the light"; str3 = "the light"; 一般说来,编译器每碰到一个字符串的字面值,就会创建一个新的对象 所以在第6行会创建了一个新的字符串"the light" 但是在第7行,编译器发现已经存在现成的"the light",那么就直接拿来使用,而没有进行重复创建 package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light";
String str3 = "the light";
System.out.println( str1 == str3);
}
}
package character; public class TestString { public static void main(String[] args) { String str1 = "the light"; String str3 = "the light"; System.out.println( str1 == str3); } }
使用equals进行字符串内容的比较,必须大小写一致
equalsIgnoreCase,忽略大小写判断内容是否一致 package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light";
String str2 = new String(str1);
String str3 = str1.toUpperCase();
//==用于判断是否是同一个字符串对象
System.out.println( str1 == str2);
System.out.println(str1.equals(str2));//完全一样返回true
System.out.println(str1.equals(str3));//大小写不一样,返回false
System.out.println(str1.equalsIgnoreCase(str3));//忽略大小写的比较,返回true
}
}
startsWith //以...开始 endsWith //以...结束 package character;
public class TestString {
public static void main(String[] args) {
String str1 = "the light";
String start = "the";
String end = "Ight";
System.out.println(str1.startsWith(start));//以...开始
System.out.println(str1.endsWith(end));//以...结束
}
}
package character; public class TestString { public static void main(String[] args) { String str1 = "the light"; String start = "the"; String end = "Ight"; System.out.println(str1.startsWith(start));//以...开始 System.out.println(str1.endsWith(end));//以...结束 } }
创建一个长度是100的字符串数组
使用长度是2的随机字符填充该字符串数组 统计这个字符串数组里重复的字符串有多少种
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
16分54秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 package character;
public class TestString {
public static void main(String[] args) {
String[] ss = new String[100];
// 初始化
for (int i = 0; i < ss.length; i++) {
ss[i] = randomString(2);
}
// 打印
for (int i = 0; i < ss.length; i++) {
System.out.print(ss[i] + " ");
if (19 == i % 20)
System.out.println();
}
for (String s1 : ss) {
int repeat = 0;
for (String s2 : ss) {
if (s1.equalsIgnoreCase(s2)) {
repeat++;
if (2 == repeat) {
// 当repeat==2的时候,就找打了一个非己的重复字符串
putIntoDuplicatedArray(s1);
break;
}
}
}
}
System.out.printf("总共有 %d种重复的字符串%n", pos);
if (pos != 0) {
System.out.println("分别是:");
for (int i = 0; i < pos; i++) {
System.out.print(foundDuplicated[i] + " ");
}
}
}
static String[] foundDuplicated = new String[100];
static int pos;
private static void putIntoDuplicatedArray(String s) {
for (int i = 0; i < pos; i++){
if (foundDuplicated[i].equalsIgnoreCase(s))
return;
}
foundDuplicated[pos++] = s;
}
private static String randomString(int length) {
String pool = "";
for (short i = '0'; i <= '9'; i++) {
pool += (char) i;
}
for (short i = 'a'; i <= 'z'; i++) {
pool += (char) i;
}
for (short i = 'A'; i <= 'Z'; i++) {
pool += (char) i;
}
char cs[] = new char[length];
for (int i = 0; i < cs.length; i++) {
int index = (int) (Math.random() * pool.length());
cs[i] = pool.charAt(index);
}
String result = new String(cs);
return result;
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2023-02-06
想了好久,
4 个答案
CharlieLong 跳转到问题位置 答案时间:2023-09-12 创建一个长度是100的字符串数组
使用长度是2的随机字符填充该字符串数组
统计这个字符串数组里重复的字符串有多少种
爱学Java的小林 跳转到问题位置 答案时间:2023-06-11 答案
五周 跳转到问题位置 答案时间:2023-05-07 package com.ds.string;
import java.util.Arrays;
/**
* @Author: DS
* @Date: 2023/5/7 14:07
*/
public class String11 {
public static void main(String[] args) {
String[] ss=new String[100];
int[] nums =new int[100000];
Arrays.fill(nums,0);
for (int i = 0; i < 100; i++) {
ss[i]=new String05().generator(2);
int temp=ss[i].charAt(0)*1000+ss[i].charAt(1);
if(nums[temp]==1){
System.out.print(ss[i]+" ");
nums[temp]=-1;
}else if(nums[temp]!=-1){
nums[temp]=1;
}
}
}
}
伊亻 跳转到问题位置 答案时间:2023-02-09 nQ 1o xT sB 4X P9 Lq zJ lb CE
rv IJ Kc UO 9L Oi Vo Ws 1B Uf
Q0 ws ki Hj YQ Gh yJ JD bF wR
h5 Nn gq by WS h6 yH NR Xv BB
kB xQ hU 2S WU bo H3 wV Rm SH
p6 lr Ri VB eb G2 bz DZ 1d dJ
dJ Tu b0 Ii Hj qz g4 FI 4W Xn
BP iC JA Q4 LH Fe vn 62 2m bF
Oh qK Yi Rr KV T7 VU C5 gK zm
5k wb JN ne BH T6 xX Fh Ko Fa
一共有2种重复字符串
它们是:Hj dJ
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2023-01-30
这样可以吗
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2022-10-23
示例5-参考答案
2022-08-26
练习5-比较字符串参考
2022-07-26
练习答案,自己做的
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 109 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|