Tag: 字符串

在没有连接的情况下将Java字符串插入另一个字符串?

在Java中有更优雅的方式吗? String value1 = “Testing”; String test = “text goes here ” + value1 + ” more text”; 是否可以将变量直接放在字符串中并对其值进行评估?

Java – 如何在矩形中以视觉方式居中特定字符串(而不仅仅是字体)

我试图在JPanel上以视觉方式居中任意用户提供的字符串。 我已经在SO上阅读了几十个其他类似的问题和答案,但没有发现任何直接解决我遇到的问题。 在下面的代码示例中,getWidth()和getHeight()引用了我放置文本字符串的JPanel的宽度和高度。 我发现TextLayout.getBounds()非常好地告诉我包含文本的边界矩形的大小。 因此,我认为通过计算文本边界矩形左下角的JPanel上的x和y位置,将文本矩形居中在JPanel矩形中会相对简单: FontRenderContext context = g2d.getFontRenderContext(); messageTextFont = new Font(“Arial”, Font.BOLD, fontSize); TextLayout txt = new TextLayout(messageText, messageTextFont, context); Rectangle2D bounds = txt.getBounds(); xString = (int)((getWidth() – (int)bounds.getWidth()) / 2 ); yString = (int)((getHeight()/2) + (int)(bounds.getHeight()/2)); g2d.setFont(messageTextFont); g2d.setColor(rxColor); g2d.drawString(messageText, xString, yString); 这适用于全部大写的字符串。 但是,当我开始使用带有下行字符的小写字母(如g,p,y)进行测试时,文本不再居中。 小写字母上的下划线(延伸到字体基线下方的部分)在JPanel上绘制得太低,使文本看起来居中。 那时我发现(感谢SO)传递给drawString()的y参数指定了绘制文本的基线 ,而不是下限。 因此,再次在SO的帮助下,我意识到我需要通过字符串中下划线的长度来调整文本的位置: …. TextLayout txt = new […]

Android Bug? :String.substring(5).replace(“”,“”)//空字符串

这是我的代码: String str = “just_a_string”; System.out.println(“]” + str + “[“); System.out.println(“]” + str.replace(“”, “”) + “[“); System.out.println(“]” + str.substring(5) + “[“); System.out.println(“]” + str.substring(5).replace(“”, “”) + “[“); System.out.println(“]” + str.substring(3, 8) + “[“); System.out.println(“]” + str.substring(3, 8).replace(“”, “”) + “[“); System.out.println(“]” + “sdajndan”.substring(5).replace(“”, “”) + “[“); 这是输出 05-09 19:09:20.570: I/System.out(23801): ]just_a_string[ 05-09 19:09:20.570: I/System.out(23801): ]just_a_string[ […]

非法逃逸字符“\”

我想在链接的末尾得到名称,所以我这样做了 if( invName.substring(j,k).equals(“\”)){ copyf=invName.substring(0,j);} Eclipse表示字符串文字没有被双引号正确关闭 如何将String与此char进行比较?

大写字母后插入空格

如何将”HelloWorld”为”Hello World” 。拆分必须基于大写字母,但应排除第一个字母。 PS :我知道使用String.split然后合并。只想知道是否有更好的方法。

如何将逗号分隔的字符串拆分为空字符串数组

我想使用String.split()将”,,,”拆分为4 “”的数组 这是我的代码: String str = “,,,”; String[] tokens = str.split(“,”); 但是,结果标记是一个空数组:[],而不是我想要的4 “” ([“”,””,””,””])数组([“”,””,””,””]) 。 我已经测试过改变str了一下: String str = “,,,1”; String[] tokens = str.split(“,”); 这次结果令牌是[“”,””,””,”1″] 。 这接近我想要的,但我真的不想在进行拆分之前添加这个“1”。 问题基本上是,如果String.split()只包含空元素””它将返回一个空数组。 你能帮忙解决问题吗?

如何用回车创建一个String?

对于JUnit测试,我需要一个由多行组成的String。 但我得到的只是一个单行字符串。 我尝试了以下方法: String str = “;;;;;;\n” + “Name, number, address;;;;;;\n” + “01.01.12-16.02.12;;;;;;\n” + “;;;;;;\n” + “;;;;;;”; 我也试过\n\r而不是\n 。 System.getProperty(“line.separator”)也不起作用。 它在String中生成一个\n而没有回车符。 那我怎么解决呢?

为API选择CharSequence和String之间

String 是一个 CharSequence 。 Java库中的许多方法都接受CharSequence因此它们更 CharSequence 。 有些classe有一个String方法(例如, Writer.write(String) ),并且还使用等效的CharSequence方法实现Appendable (例如, Writer.append(CharSequence) )。 如果我正在编写一个委托给这样一个类的类,并且需要一些文本输入,我可以选择该输入为String或CharSequence 。 通过为客户提供更多选项,选择后者使课程更加灵活。 但我没有看到太多代码这样做:文本参数几乎总是一个String而不是一个CharSequence 。 使用CharSequence吗? 是否有性能受损? 或者只是程序员的intertia或无知会导致使用String而不是CharSequence ? 比较 class XMLWriter { private final Writer writer; // more stuff here public void writeComment(String text) { writer.write(“”); } } 同 class XMLWriter { private final Writer writer; // more stuff here public […]

Java中的flyweight字符串何时有用?

我理解java的字符串实习的基本思想 ,但我想弄清楚它发生在哪些情况,以及我需要做哪些自己的轻量级。 有点相关: Java字符串:“String s = new String(”傻“);” Java中String flyweight实现的最佳替代方法从未得到过回答 他们一起告诉我, String s = “foo”是好的, String s = new String(“foo”)很糟糕,但没有提到任何其他情况。 特别是,如果我解析一个有很多重复值的文件(比如一个csv),Java的字符串实习会覆盖我还是我需要自己做一些事情? 关于字符串实习是否适用于我的其他问题 ,我得到了相互矛盾的建议 完整的答案有几个片段,所以我在这里总结一下: 默认情况下,java仅实现编译时已知的字符串。 String.intern(String)可以在运行时使用,但它执行得不是很好,所以它只适用于你确定会重复很多次数较少的String 。 对于较大的Strings系列,它是拯救的番石榴(参见ColinD的答案)。

你能分享一个URL解析实现的链接吗?

据我所知,URL包含以下字段: 协议(http,https,ftp等) 用户名 用户密码 主机地址(IP地址或DNS FQDN) 端口(可以暗示) 服务器文档根目录内的文档路径 一组参数和值 文件部分(#) 如 协议://用户:密码@主机:端口/路径/文件ARG1 = VAL1&ARG2 = val2的#部 我需要一个代码来从任何给定的URL字符串中获取任何这些字段的值(如果没有设置,则为null /空值)。 我自己实现这个还是已经有了代码,所以我不需要发明一个轮子? 我对Scala或Java代码特别感兴趣。 C#,PHP,Python或Perl代码也很有用。