如何在Java中获取字符串位置

时间:2015-10-29 13:11:24

标签: java android

可能是我在问一些奇怪的东西,但我想知道,我的字符串保存在java中。我使用了hashCode()

String ext = getIntent().getStringExtra("title_");

        int path = ext.hashCode();
        Log.e("path", ""+path);

我得到了哈希码。所以这是我的字符串的唯一地址,或者还有其他方法,以获取字符串的位置。

更新

实际上我正在两个活动之间转移字符串。而且每次我都得到相同的字符串。 即使我更改了值,我也得到了相同的字符串 我已经转移了第一次

  

活动一

Intent notificationIntent = new Intent(GCMIntentService.this, MainActivity.class);

notificationIntent.putExtra ("title_",message);
  

活动二

String ext = getIntent().getStringExtra("title_");

Log.e("path", ext);

2 个答案:

答案 0 :(得分:0)

首先使用它:

Intent i=new Intent(context,SendMessage.class);
i.putExtra("test", "This is a test");
context.startActivity(i);

然后在另一个活动中,使用getIntent()方法获取已经开始活动的意图:

Intent intent = getIntent();

如果您的额外数据表示为字符串,则可以使用intent.getStringExtra(String name)方法。在这个测试中:

String test = intent.getStringExtra("test");

在你的情况下试试:

一:

Intent notificationIntent = new Intent(context,SendMessage.class);

notificationIntent.putExtra ("title_",message);

context.startActivity(notificationIntent);

二:

Intent intent = getIntent();

String ext = intent.getStringExtra("title_");

Log.e("path", ext);

答案 1 :(得分:0)

首先,对象的hashCode 绝对与其地址无关。

其次,地址并不是你应该用Java来处理的事情。

Java 确实有指针。所有非原始字段都是“指针”(引用类型),并且可以将它们相互比较:

string1 == string2

这实际上会比较两个字符串的“地址”。

正如JLS所说,in 15.21.3

  

在运行时,如果操作数值都为null或者两者都引用相同的对象或数组,则==的结果为true;否则,结果是错误的。

此外:

  

虽然==可用于比较String类型的引用,但这样的相等性测试确定两个操作数是否引用相同的String对象。如果操作数是不同的String对象,则结果为false,即使它们包含相同的字符序列(§3.10.5)。