Tag: 字符串

获取除字符串中的最后一个单词之外的每个单词的最简单方法

除了字符串中的最后一个单词之外,在字符串中获取每个单词的最简单方法是什么? 到目前为止,我一直在使用以下代码来得到最后一句话: String listOfWords = “This is a sentence”; String[] b = listOfWords.split(“\\s+”); String lastWord = b[b.length – 1]; 然后通过使用remove方法从字符串中删除最后一个单词来获取字符串的其余部分。 我不想使用remove方法,有没有类似于上面的代码集来获得一个不同的单词串而没有最后一个单词和最后一个空格?

在Java中设置相等:按值或引用?

我做了两次测试,第一次是从Strings开始 String str1 = “old”; String str2 = str1; str1 = “new”; System.out.println(str1); //new System.out.println(str2); //old 上面的例子表示str2 = str1, by value 现在我做类似的操作,但这次是Lists List list1 = new ArrayList(); List list2 = list1; list1.add(1); System.out.println(list1.size()); //1 System.out.println(list2.size()); //1 此示例list2 = list1, by reference指示list2 = list1, by reference 我很困惑, which Java variables/objects是按value传递的,哪些是通过reference传递的?

Java不可变对象

我正在学习不变性的概念。 我知道一旦创建了对象,不可变对象就无法更改它们的值。 但我不明白以下对不可变对象的使用。 他们是 是自动线程安全的,没有同步问题。 How ? Proof ? 不需要复制构造函数。 How ? Any example ? 不需要克隆的实现How ? Any example ? How ? Any example ? 用作场时不需要防守复制How ? Any example ? How ? Any example ? 总是有”failure atomicity” (a term used by Joshua Bloch) :如果一个不可变对象抛出exception,它就永远不会处于不受欢迎或不确定的状态。 How ? Any example ? 有人可以通过支持它的例子详细解释这些要点吗? 谢谢。

如何计算一组字符串的最短唯一前缀?

这是命令行解析中非常常见的算法。 给定一组预定义的长选项名称 – 计算唯一标识其中一个选项的最短前缀。 例如,对于以下选项: -help -hostname -portnumber -name -polymorphic 这将是输出: -he -ho -por -n -pol 我正在考虑两种可能的方法 – 作为一棵树: * / | \ / | \ HNP / \ | EOO / \ RL 或者通过搜索子串: for (String s : strings) { for (int i = 1; i < s.length(); s++) { if (search(strings,s.substring(0,i)) == 1) […]

将MAC地址字节数组格式化为String

我正在使用此代码来查找计算机的MAC地址。 此代码直接打印MAC地址,但我想将其作为字符串返回。 我完全糊涂了。 请帮忙。 try { InetAddress add = InetAddress.getByName(“10.123.96.102”); NetworkInterface ni1 = NetworkInterface.getByInetAddress(add); if (ni1 != null) { byte[] mac1 = ni1.getHardwareAddress(); if (mac1 != null) { for (int k = 0; k < mac1.length; k++) { System.out.format("%02X%s", mac1[k], (k < mac1.length – 1) ? "-" : ""); } } else { System.out.println("Address doesn't […]

如何在Java中打印“\ t”(如图所示)?

我想用Java打印反斜杠。 但每当我尝试时,它实际上将其视为\ t操作符。 双反斜杠不起作用。 我怎样才能做到这一点。

转义java字符串文字中的反斜杠

我正在使用Java一段时间并提出这个问题:我在Windows中使用硬编码路径 “D:\Java-code\JavaProjects\workspace\eypros\src” 问题是我需要转义反斜杠字符才能将其与字符串一起使用。 所以我手动逃避每个反斜杠: “D:\\Java-code\\JavaProjects\\workspace\\eypros\\src” 有没有办法自动获取未转义的路径并返回转义的java字符串。 我想也许除了java字符串之外的另一个容器可以做到这一点(但我不知道)。 有什么建议么?

将null传递给优先使用String的方法,而不是Object

我在我的程序中遇到了一个问题,我在下面的一个小代码片段中说清楚了。 任何人都可以解释为什么会这样吗? class ObjectnullTest { public void printToOut(String string) { System.out.println(“I am null string”); } public void printToOut(Object object) System.out.println(“I am null object”); } class Test { public static void main(String args[]) { ObjectnullTest a = new ObjectnullTest(); a.printToOut(null); } } 这总是打印I am null string 。 我想知道原因,以便我可以修改代码。

String.join()vs其他字符串连接操作

我已经快速阅读了Java8 String api文档。 现在我对String.join()方法很好奇,以便连接/连接字符串。 这种例子让我更好地理解: //Old way: String str1 = “John”; String str2 = “Doe”; String result = str1 + ” ” +str2; //or by using str1.concat(str2); //New way: String result = String.join(” “, str1, str2); 不过,我不明白我应该使用哪一个。 这两个过程之间是否有任何性能或其他差异。 任何帮助将不胜感激。

在编写字符串时,如何调试导致转换错误的xml对象?

我有一个XML对象,当我将其转换为字符串时 public static String XMLElementToString(Document doc, Element e) { // — Output XML — try { TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer transformer = transFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, “yes”); transformer.setOutputProperty(OutputKeys.ENCODING, “UTF-8”); StringWriter buffer = new StringWriter(); Result result = new StreamResult(buffer); Source source = null; if (e != null) { transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, “yes”); source = new DOMSource(e); } else […]