Tag: 字符串

在O(1)中用Java反转一个字符串?

在给定CharSequence的情况下,标准Java库中是否有任何工具在O(1)时间内产生反转? 我想这很容易实现,只是想知道它是否已经存在。 (我怀疑这不是提供的原因是因为“简单”的方式实际上会破坏多字符代码点 – 但在许多情况下我们知道我们没有处理那些)。 谢谢 更新嘿,大多数人认为这个“不可能”,好工作的家伙有点有趣! 嗯,实际上它(概念上)是微不足道的 – 伪随之而来是为了清楚: class MyReverseString extends String { //of course I can’t extend String! final String delegate; MyReverseString(String delegate) { this.delegate = delegate; } int length() { return delegate.length(); } int charAt(int i) { return delegate.charAt(delegate.length() – 1 – i); } } 我正在将这个问题留待更多,只是在极少数事件中,明显的解决方案(例如,见Jon Skeet的那个)已经存在于JDK中并且有人知道它。 (再次,由于那些讨厌的代码点,极不可能)。 编辑可能混淆来自我在标题中有“字符串”(但不是字符串!),而我只要求“CharSequence的反向”。 如果你感到困惑,抱歉。 我希望O(1)部分能够清楚地说明要求的内容。 […]

MyBatis String作为参数

我想在MyBatis中为Select语句使用String参数。 我的mapper.xml: SELECT CREATIONDATE, DOCUMENTID, TITEL, REGTITEL, INFORCEDATE, DOCTYPE FROM #{databBaseTable} 和调用函数: public List selectAll(String databBaseTable) { SqlSession session = sqlSessionFactory.openSession(); System.out.println(“Table: “+databBaseTable); try { List list = session.selectList(“FastXMLObject.selectAll”,databBaseTable); return list; } finally { session.close(); } } 字符串dataBaseTable是我的数据库的表的名称(谁会想到),因为我想从verious表中动态获取数据。 但不幸的是,这不起作用:错误:ORA-00903:UngültigerTabellenname(表名无效)但它不是。 当我打印出“databBaseTable”的值时,它就是表的确切名称。 当我将表的名称写入我的mapper.xml而没有变量时,它可以工作。 我做错了什么?

检测String是否为数字的最优雅方法?

是否有更好,更优雅(和/或可能更快)的方式 boolean isNumber = false; try{ Double.valueOf(myNumber); isNumber = true; } catch (NumberFormatException e) { } …? 编辑 :因为我不能选择两个答案我正在使用正则表达式因为a)它优雅而且b)说“Jon Skeet解决了问题”是一个重言式,因为Jon Skeet本身就是所有问题的解决方案。

Java中的字符串到二进制输出

我想从一个字符串得到二进制(011001 ..),但我得到[B @ addbf1,必须有一个简单的转换才能做到这一点,但我没有看到它。 public static String toBin(String info){ byte[] infoBin = null; try { infoBin = info.getBytes( “UTF-8” ); System.out.println(“infoBin: “+infoBin); } catch (Exception e){ System.out.println(e.toString()); } return infoBin.toString(); } 在这里我得到infoBin:[B @ addbf1 我想要infoBin:01001 …… 任何帮助将不胜感激,谢谢!

在Java中提取int的数字

所以,如果我有一个输入的整数: int num_1 = 128 我如何能够解析数字并获得1,2和8,并将它们分配给不同的变量? 谢谢!

match和equalsIgnoreCase之间的差异或字符串类中的equals

matches :将检查输入的完整字符串是否等于字符串对象中的值。 equalsIgnoreCase :忽略大小写,它会检查输入的字符串是否等于字符串对象中的值。 equals :区分大小写,它检查输入的字符串是否等于字符串对象中的值。 这就是我所知道的String类中的方法。 还有其他差异(我是否遗漏了任何有价值的差异)? 如果没有差异,那么为什么cant匹配方法会从String类中删除,因为它所提出的function可以适当地使用上述其他方法来实现。

如何在java中构建url?

我正在使用StringBuilder构建一个String StringBuilder builder = new StringBuilder(); builder.append(“my parameters”); builder.append(“other parameters”); 然后我建立一个url Url url = new Url(builder.toString()); 然后我尝试连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 但是从我得到的结果来看,url似乎并不正确。 这就像某些参数被错误传递。 这就是为什么我认为问题出在StringBuilder的一部分。 问题在于我尝试传递的双参数。 double longitude = 23.433114; String lng = String.ValueOf(longitude); 然后我把它放在url中。 但如果我把它作为字符串给出,结果是正确的。 String lng = “23.433114” UrlEncoding是否必要? 我将尝试下面的建议。

用螺旋写一个字符串

我最近参加了一家公司赞助的编码竞赛,有一个我不理解的问题,问题是什么。 这是一个问题: 字符串“paypal是更快,更安全的汇款方式”是从左上角开始以正方形螺旋形图案写在正方形内:(您可能希望以固定字体显示此图案以获得更好的易读性)。 PAYPAL FERWAI AMONYS SDYETT RNESOH ETSAFE 然后逐行阅读:PAYPALFERWAIAMONYSSDYETTRNESOHETSAFE 编写将采用字符串的代码,计算将包含它的最小平方并返回转换后的字符串: 字符串转换(String text); 例: convert(“paypalisthefastersaferwaytosendmoney”) should return “paypalferwaiamonyssdyettrnesohetsafe” 你了解我们如何解决这个问题吗?

Java中字符串池的基础机制?

我很好奇为什么可以在不调用new String()情况下创建new String() ,因为API提到它是class java.lang.String 那么我们如何才能使用String s=”hi”而不是String s=new String(“hi”) ? 这篇文章阐明了使用==运算符和缺少new并说这是由于String文字被JVM 中断或从文字池中取出,因此Strings是不可变的。 看到诸如此类的陈述 String s=”hi” 第一次真正发生了什么? JVM是否将其替换为String s=new String(“hi”) ,其中创建了一个Object并且将”hi”添加到String文本池中 ,因此后续调用(如String s1=”hi”取自池? 这是基础机制的运作方式吗? 如果是的话,那就是 String s=new String(“Test”); String s1=”Test”; 同样的 String s=”Test”; String s1=”Test”; 在内存利用率和效率方面 ? 另外,有什么办法可以访问字符串池来检查它中存在多少String文字,占用了多少空间等等?

从编译到运行时,Java String编码如何真正起作用

我最近意识到我并不完全理解Java的字符串编码过程。 请考虑以下代码: public class Main { public static void main(String[] args) { System.out.println(java.nio.charset.Charset.defaultCharset().name()); System.out.println(“ack char: ^”); /* where ^ = 0x06, the ack char */ } } 由于控制字符在windows-1252和ISO-8859-1之间有不同的解释 ,因此我选择了ack char进行测试。 我现在用不同的文件编码,UTF-8, windows-1252和ISO-8859-1编译它。 两者都编译为完全相同的东西,每个字节的字节由md5sumvalidation。 然后我运行程序: $ java Main | hexdump -C 00000000 55 54 46 2d 38 0a 61 63 6b 20 63 68 61 72 […]