在 Java 中不使用多余变量交换两个字符串

在 Java 中不使用多余变量交换两个字符串

public class Test {
    public static void main(String[] args) {
        String a = "Hello";
        String b = "World";
        System.out.println("Strings before swap: a = " + a + " and b = " + b);

        a = a + b;
        b = a.substring(0, a.length() - b.length());
        a = a.substring(b.length());

        System.out.println("Strings after swap: a = " + a + " and b = " + b);
    }
}

Strings before swap: a = Hello and b = World
Strings after swap: a = World and b = Hello

原文地址:https://www.cnblogs.com/hglibin/p/11291666.html

时间: 2025-01-13 23:33:04

在 Java 中不使用多余变量交换两个字符串的相关文章

【Java】不使用第三方变量交换两个变量的值

在语言学习和进行程序设计的时候,我们交换两个变量最常使用的方法是借助temp这个新的变量进行转换,代码如下: ----------------------------------------- <--标准算法--> ----------------------------------------- int a = 3, b = 4; int temp = a; a = b; b = temp; ----------------------------------------- 这种方法易于理解

hadoop 关于java中的public static 变量是不能被改变的?

我在写hadoop的时候,在mapper里定义了一个public static int rownums = 0.但我在main里对这个变量进行了赋值. 结果在循环的过程中,根本没有任何输出,因为我是用这个变量来控制循环的,所以我猜想可能是不能改变这个值,于是我直接在初始定义的时候直接赋上正确的值,所以这样最后程序就正确运行了. 但是我又新建了一个工程写了一个小程序,试了一下,明明是能够改变,正确输出的. 不能理解了. hadoop 关于java中的public static 变量是不能被改变的?

java中JDK的环境变量配置

JDK环境变量装备以下观念为自个自个了解,不一定完全正确,期待评论纠正! 关于jdk的环境变量装备,通常会讲到三个,分别是JAVA_HOME,CLASSPATH,PATH.1.关于path,应该是最好了解的号码归属地查询,path是windows的体系环境变量,不是由于jdk而存在的,它的设置即是为了在恣意目录下履行jdk目录中bin文件夹应用程序的便利,将%JAVA_HOME%\bin目录存放于关键词挖掘工具path中,在恣意途径的cmd窗口中便都能够运转javac,java,jar等程序了.

为什么Java中实现多线程的方式有两种?

在面试的过程中,我们经常问被面试者,为什么Java中实现多线程的方式有两种(一种是直接继承Thread类,一种是实现Runnable接口)?可惜的是,很多面试者都答不出来,甚至从来没有想为什么.,那么真正的原因是什么呢?我们可以用反证法推理一下: 假设Java只提供Thread供大家继承从而实现多线程,考虑下面的一个需求,如果有一个已经继承了某个父类的类,但是这个类又想实现多线程,怎么办?很显然,如果只提供一个可以继承的类,肯定解决不了这个问题.那么,如何解决,毫无疑问,就只能使用接口了.

不使用临时变量 交换两个变量值

不使用临时变量 交换两个变量值1.$a = $a+$b;$b = $a-$b;$a= $a-$b; 2.list($a, $b) = array($b, $a); 3. $a = $a ^ $b;$b = $a ^ $b;$a = $a ^ $b;

不用临时变量交换两个变量的值——函数对象

// 不使用中间临时变量,交换两对象的值 ,废话少说,直接上代码 // Virtual.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> #include <memory> #include <algorithm> #include <set> #include <vector> #include <map> #include <stri

不使用临时变量交换两个变量值

题目:不使用临时变量交换两个变量值 分析:使用加.减.乘.亦或(aba==b),四种方法分别如下: //方法一:利用加法 int Swap3(int *x, int *y) { *x = *x + *y;//*x是二者和 *y = *x - *y;//*y是*x *x = *x - *y;//*x是*y } //方法二:利用减法 int Swap1(int *x, int *y) { *x = *x - *y;//*x是二者差值 *y = *x + *y;//*x是*y *x = *y - *x

Java基础知识强化10:Java中的中间缓存变量机制

1.对于自增运算++j与j++,由于加一的执行顺序不同,所以Java中有中间缓存变量来储存其单个表达式的值,而j的自增自减的结果依然保留在原来的变量储存区.因为本体是j的值,而单个表达式的值是中间产生的一个临时变量值,是在整条计算表达式结束后就可以抛弃的值,所以用个临时中间缓存变量在放就可以了.这就可以实现自增自减运算在计算时值的加减1顺序差异产生的表达式与本体值差异的两个变量储存. 2. 1 因为在计算过程中,使用了Java中间变量缓存机制.在java中,执行自增运算时,会为每一个自增操作分配

Java中的中间缓存变量机制

上代码: public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) { j = j++; System.out.println(j); } System.out.println(j); } 如果按照Cpp的理解,这个结果应该就是100.不过java,是0. 是因为java中有关自增自减操作执行的,java会通过分配临时变量来执行的.如:j = j++, 是这么执行的: int temp =