JAVA字符串常量和变量相加问题

字符串变量相加:先开空间(产生地址值),在相加,还需要判断当前相加后的结果在常量是否存在
 * 
 * 字符串常来你相加:先相加,然后在常量池中是否存在该常量,如果存在,直接返回地址值;;如果不存在再开空间

public class StringDemo2 {
	public static void main(String[] args) {
		String s1="hello";
		String s2="world";
		String s3="helloworld";
		
		System.out.println(s1+s2==s3);
		System.out.println((s1+s2).equals(s3));
		
		System.out.println("-------------------");
		
		System.out.println(s3=="hello"+"world");
		System.out.println(s1=="hello"+"world");
		System.out.println(s3.equals("hello"+"world"));
	}
}

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
斯坦福大学经典教材网上有配套的公开课视频 内容简介   自1995年首次发布以来,Java编程语言作为一种教学语言变得日益重要,现在已经成为初级计算课程斯坦福大学的标准语言。Java语言可以让学生编写高度交互式程序,这充分激发了他们的学习兴趣。但Java语言很复杂,老师和学生们在理解Java语言的结构时,复杂性成为了最大的障碍。   在本书中,斯坦福大学教授、著名的计算机科学教育领导者Eric S.Roberts着重强调了更适合于初学者的友好讲解方式,使用ACM Java库简化编程。本书简练清晰地介绍了传统CS1课程的内容,同时也包含了最近的Computing Curriculum 2001报告计算机科学卷中指定为CS101O或CS111O课程的全部主题。 作者简介   Eric S. Roberts,美国斯坦福大学计算机科学系教授,并担任主管教学事务的系主任。同时还由于教学改革所取得的成就被评为Charles Simonyi荣誉教授。他于1980年获得哈佛大学应用数学博士学位,并曾在加州Palo Alto的DEC公司的系统研究中心工作了5年。作为一位成功的教育工作者,Roberts还获得了1993年的Bing Award奖。 目录   第1章 前言   1.1 计算简史   1.2 计算机科学的含义   1.3 计算机硬件简介   1.4 算法   1.5 编程过程的几个阶段   1.6 Java和面向对象范例   1.7 Java和WWW   1.8 小结   1.9 复习题   第2章 编程示例   2.1 “Hello world”程序   2.2 编程过程的观点   2.3 两数相加的程序   2.4 编程习语和模式   2.5 类和对象   2.6 图形程序   2.7 小结   2.8 复习题   2.9 编程练习   第3章 表达式   3.1 原始数据类型   3.2 常量变量   3.3 运算符和操作数   3.4 赋值语句   3.5 布尔表达式   3.6 设计改变   3.7 小结   3.8 复习题   3.9 编程练习   第4章 语句形式   4.1 Java的语句类型   4.2 控制语句和问题解决   4.3 if 语句   4.4 switch语句   4.5 while语句   4.6 for语句   4.7 小结   4.8 复习题   4.9 编程练习   第5章 方法   5.1 方法概述   5.2 编写自己的方法   5.3 方法调用过程的技巧   5.4 分解   5.5 算法方法   5.6 小结   5.7 复习题   5.8 编程练习   第6章 对象和类   6.1 使用RandomGenerator类   6.2 javadoc文档系统   6.3 定义自己的类   6.4 表示学生信息   6.5 有理数   6.6 扩展现有类   6.7 小结   6.8 复习题   6.9 编程练习   第7章 对象和内存   7.1 内存结构   7.2 将内存分配给变量   7.3 原始类型与对象   7.4 链接对象   7.5 小结   7.6 复习题   7.7 编程练习   第8章 字符串和字符   8.1 枚举的原则   8.2 字符   8.3 作为抽象概念的字符串   8.4 使用String类中的方法   8.5 字符串处理案例研究   8.6 小结   8.7 复习题   8.8 编程练习   第9章 面向对象图形   9.1 acm.graphics模型   9.2 acm.graphics程序包的结构   9.3 使用形状类   9.4 创建复合对象   9.5 小结   9.6 复习题   9.7 编程练习   第10章 事件驱动程序   10.1 Java事件模型   10.2 简单的事件驱动程序   10.3 响应鼠标事件   10.4 响应键盘事件   10.5 创建简单的GUI   10.6 Swing 交互器层次结构   10.7 管理组件布局   10.8 使用TableLayout类   10.9 小结   10.10 复习题   10.11 编程练习   第11章 数组与ArrayList类   11.1 数组简介   11.2 数组的内部表示法   11.3 数组作为参数传递   11.4 使用数组制作表格   11.5 数组初始化   11.6 多维数组   11.7 图像处理   11.8 ArrayList类   11.9 小结   11.10 复习题   11.11 编程练习   第12章 搜索与排序   12.1 搜索   12.2 排序   12.3 评估算法效率   12.4 使用数据文件   12.5 小结   12.6 复习题   12.7 编程练习   第13章 数组与ArrayList类   13.1 ArrayList类回顾   13.2 HashMap类   13.3 Java集合架构   13.4 面向对象设计的原则   13.5 小结   13.6 复习题   13.7 编程练习   第14章 展望   14.1 递归   14.2 并发   14.3 使用网络   14.4 编程模式   14.5 小结   14.6 复习题   14.7 编程练习
可以利用C语言中的三目运算符来实现。 代码如下: ```c #include <stdio.h> #include <string.h> int main() { char s1[41], s2[41], *shorter, *longer; int len1, len2; printf("请输入字符串S1:"); scanf("%s", s1); printf("请输入字符串S2:"); scanf("%s", s2); len1 = strlen(s1); len2 = strlen(s2); shorter = (len1 <= len2) ? s1 : s2; longer = (len1 > len2) ? s1 : s2; strcat(longer, shorter); printf("拼接后的字符串为:%s\n", longer); return 0; } ``` 首先,我们定义了两个字符串数组 `s1` 和 `s2`,用来存储用户输入的两个字符串。由于两个字符串的长度相加不超过 80,所以我们将数组长度设为 41,以容纳最长的字符串。 接着,我们使用 `scanf` 函数分别读入两个字符串。 然后,我们使用 `strlen` 函数计算两个字符串的长度,存储在变量 `len1` 和 `len2` 中。 接下来,我们使用三目运算符来确定两个字符串中哪个较短、哪个较长。具体地,我们将较短的字符串的地址存储在指针变量 `shorter` 中,将较长的字符串的地址存储在指针变量 `longer` 中。 最后,我们使用 `strcat` 函数将较短的字符串拼接在较长的字符串后面,并输出拼接后的字符串。 需要注意的是,`strcat` 函数会将较短的字符串拼接在较长的字符串后面,因此我们需要将较长的字符串存储在数组中,以保证足够的空间。此外,为了避免修改常量字符串,我们使用指针变量来存储较短和较长的字符串

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值