Tag: 字符串

在Java中检查空字符串

我不知道下面的代码有什么问题….我从文本框中获取输入并将输入放在一个字符串中。 如果文本框为空,则返回空字符串。 在下面的代码中 String[] str = new String[9]; for(int i=0;i<9;i++){ if(str[i].equals("")){ System.out.println("set " + cmds[i] + " " + str[i]); WriteThread.sendCommand("set " + cmds[i] + " " + str[i] + "\n", false); } } 在上面的代码中, str[i]存储了文本框的输入文本,我试图检查数组的任何元素是否为空。 我也试过str[i] == “”和str[i] == null但没有运气。 if块中的语句,如果我打印字符串str[i] ,它显示没有任何意味着它是空的。 我做错了什么吗?

从String.getBytes(“UTF-8”)处理UnsupportedEncodingException的推荐方法

在库方法中调用String.getBytes(“UTF-8”)时,处理UnsupportedEncodingException的推荐方法是什么? 如果我正确地阅读http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html,UTF-8编码应始终可用,这让我相信没有将此exception传递给库的使用者的原因(即,向方法签名添加throws子句)。 似乎任何使UTF-8编码设施不可用的故障模式都是灾难性的,导致我编写这个处理程序: try { …. return “blah”.getBytes(“UTF-8”); } catch (UnsupportedEncodingException e) { // we’re assuming UTF-8 encoding is always available. // see // http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html e.printStackTrace(); return null; //prevent compile-time “method must return a result” errors } 是否存在此代码段无法解决的故障模式?

Java中的可变字符串

几乎每个人都知道Java中的字符串是不可变的。 最近我发现了一些可能暗示它并不总是正确的东西。 我们试试这段代码吧: System.out.println(“——– BEFORE MODIFICATIONS ——–“); String beforeTest = new String(“Original”); System.out.println(beforeTest); java.lang.reflect.Field valueField = String.class.getDeclaredField(“value”); valueField.setAccessible(true); valueField.set(“Original”, “Modified”.toCharArray()); System.out.println(“——– AFTER MODIFICATIONS ——–“); System.out.println(beforeTest); System.out.println(“Original”); String test = new String(“Original”); System.out.println(test); String test2 = new String(“Original 2”); System.out.println(test2); 输出将是: ——– BEFORE MODIFICATIONS ——– Original ——– AFTER MODIFICATIONS ——– Original Modified Modified Original 2 这个技巧如何运作? […]

有没有办法使用SLF4J样式的格式化函数构建Java String?

我听说使用StringBuilder比使用字符串连接更快,但我已经厌倦了一直在与StringBuilder对象进行摔跤。 我最近接触过SLF4J日志库,与String.format相比,我喜欢其格式化的“正确做事”。 那里有一个图书馆可以让我写下这样的东西: int myInteger = 42; MyObject myObject = new MyObject(); // Overrides toString() String result = CoolFormatingLibrary.format(“Simple way to format {} and {}”, myInteger, myObject); 另外,是否有任何原因(包括性能但不包括对日期和重要数字格式的细粒度控制)为什么我可能想要在这样的库中使用String.format(如果它存在的话)?

如何使用java将点(。)替换为逗号(,)

我有一个String str = 12,12我想用(。逗号)替换。(点)进行十进制数计算,目前我正在尝试这个: if( str.indexOf(“,”) != -1 ) { str.replaceAll(“,”,”\\.”); } 请帮忙

查找字符串的子字符串包含数组中的所有单词

我有一个字符串和一个单词数组,我必须编写代码来查找字符串的所有子字符串,包含任何顺序的数组中的所有单词。 该字符串不包含任何特殊字符/数字,每个单词用空格分隔。 例如: 字符串给出: aaaa aaaa aaaa aaaa cccc bbbb bbbb bbbb bbbb aaaa bbbb cccc 数组中的单词: aaaa bbbb cccc 输出样本: aaaa aaaa aaaa aaaa cccc bbbb bbbb bbbb bbbb aaaa aaaa aaaa aaaa cccc bbbb aaaa cccc bbbb bbbb bbbb bbbb cccc bbbb bbbb bbbb bbbb aaaa aaaa cccc bbbb 我已经使用for循环实现了这个,但这是非常低效的。 我怎样才能更有效地做到这一点? 我的代码: for(int […]

从Servlet到JSP显示MySQL查询结果

我试图将查询的结果存储在一个字符串中,并通过将该字符串传递给它来将它们打印到我的JSP页面的底部。 现在,JSP页面最初显示正常,但是当我单击按钮发布命令时没有发生任何事情。 早些时候,当我从一个html页面访问servlet,并使用PrintWriter将所有输出打印出来时,我得到了显示的结果,但它们会显示在一个单独的页面上。 1)以这种方式存储是一个好主意,还是应该使它与字符串不同? 2)如何将查询结果发布到JSP页面? databaseServlet.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.sql.*; @SuppressWarnings(“serial”) public class databaseServlet extends HttpServlet { private Connection conn; private Statement statement; public void init(ServletConfig config) throws ServletException { try { Class.forName(config.getInitParameter(“databaseDriver”)); conn = DriverManager.getConnection( config.getInitParameter(“databaseName”), config.getInitParameter(“username”), config.getInitParameter(“password”)); statement = conn.createStatement(); } catch (Exception e) { e.printStackTrace(); } } protected […]

将字符串转换为Sha-256哈希

我想将String转换为SHA-256哈希。 我正在使用此代码: String text = “YOLO”; MessageDigest digest = MessageDigest.getInstance(“SHA-256”); byte[] hash = digest.digest(text.getBytes(“UTF-8”)); System.out.println(hash.toString()); 问题是,当我启动程序时,它会打印出来 [B @ 28d93b30 这是为什么,怎么解决这个问题? 提前致谢, Fihdi

如何在字符串中查找子字符串之前和之后

我有一个字符串说123dance456 ,我需要分成两个字符串,包含子字符串dance之前的第一个子字符串(即123 )和子字符串dance (即456 )。 我需要找到它们并将它们保存在单独的字符串变量中,比如String firstSubString = 123; 和String secondSubString = 456; 。 是否有任何给定的String方法可以做到这一点?

Java Strings微妙的差异

class Test { public static void main() { String s1 = null + null; //shows compile time error String s1 = null; String s2 = s1 + null; //runs fine } } 任何人都可以解释一下这种行为的原因吗?